KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > pdfbox > pdmodel > interactive > annotation > PDAnnotationTextMarkup


1 /**
2  * Copyright (c) 2005, www.pdfbox.org
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are met:
7  *
8  * 1. Redistributions of source code must retain the above copyright notice,
9  * this list of conditions and the following disclaimer.
10  * 2. Redistributions in binary form must reproduce the above copyright notice,
11  * this list of conditions and the following disclaimer in the documentation
12  * and/or other materials provided with the distribution.
13  * 3. Neither the name of pdfbox; nor the names of its
14  * contributors may be used to endorse or promote products derived from this
15  * software without specific prior written permission.
16  *
17  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20  * DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
21  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
24  * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  *
28  * http://www.pdfbox.org
29  *
30  */

31 package org.pdfbox.pdmodel.interactive.annotation;
32
33 import org.pdfbox.cos.COSDictionary;
34 import org.pdfbox.cos.COSArray;
35 import org.pdfbox.cos.COSName;
36
37 /**
38  * This is the abstract class that represents a text markup annotation
39  * Introduced in PDF 1.3 specification, except Squiggly lines in 1.4.
40  *
41  * @author Paul King
42  * @version $Revision: 1.1 $
43  */

44 public class PDAnnotationTextMarkup extends PDAnnotationMarkup
45 {
46
47     /**
48      * The types of annotation.
49      */

50     public static final String JavaDoc SUB_TYPE_HIGHLIGHT = "Highlight";
51     /**
52      * The types of annotation.
53      */

54     public static final String JavaDoc SUB_TYPE_UNDERLINE = "Underline";
55     /**
56      * The types of annotation.
57      */

58     public static final String JavaDoc SUB_TYPE_SQUIGGLY = "Squiggly";
59     /**
60      * The types of annotation.
61      */

62     public static final String JavaDoc SUB_TYPE_STRIKEOUT = "StrikeOut";
63
64
65     private PDAnnotationTextMarkup()
66     {
67         // Must be constructed with a subType or dictionary parameter
68
}
69
70     /**
71      * Creates a TextMarkup annotation of the specified sub type.
72      *
73      * @param subType the subtype the annotation represents
74      */

75     public PDAnnotationTextMarkup(String JavaDoc subType)
76     {
77         super();
78         setSubtype( subType );
79
80         // Quad points are required, set and empty array
81
setQuadPoints( new float[0] );
82     }
83
84     /**
85      * Creates a TextMarkup annotation from a COSDictionary, expected to be a
86      * correct object definition.
87      *
88      * @param field the PDF objet to represent as a field.
89      */

90     public PDAnnotationTextMarkup( COSDictionary field )
91     {
92         super( field );
93     }
94
95     /**
96      * This will set the set of quadpoints which encompass the areas of this
97      * annotation.
98      *
99      * @param quadPoints
100      * an array representing the set of area covered
101      */

102     public void setQuadPoints( float[] quadPoints )
103     {
104         COSArray newQuadPoints = new COSArray();
105         newQuadPoints.setFloatArray( quadPoints );
106         getDictionary().setItem( "QuadPoints", newQuadPoints );
107     }
108
109     /**
110      * This will retrieve the set of quadpoints which encompass the areas of
111      * this annotation.
112      *
113      * @return An array of floats representing the quad points.
114      */

115     public float[] getQuadPoints()
116     {
117         COSArray quadPoints = (COSArray) getDictionary().getDictionaryObject( "QuadPoints" );
118         if (quadPoints != null)
119         {
120             return quadPoints.toFloatArray();
121         }
122         else
123         {
124             return null; // Should never happen as this is a required item
125
}
126     }
127
128     /**
129      * This will set the sub type (and hence appearance, AP taking precedence) For
130      * this annotation. See the SUB_TYPE_XXX constants for valid values.
131      *
132      * @param subType The subtype of the annotation
133      */

134     public void setSubtype( String JavaDoc subType )
135     {
136         getDictionary().setName( COSName.SUBTYPE, subType );
137     }
138
139     /**
140      * This will retrieve the sub type (and hence appearance, AP taking precedence)
141      * For this annotation.
142      *
143      * @return The subtype of this annotation, see the SUB_TYPE_XXX constants.
144      */

145     public String JavaDoc getSubtype()
146     {
147         return getDictionary().getNameAsString( COSName.SUBTYPE);
148     }
149
150
151 }
Popular Tags