Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1170)

Side by Side Diff: experimental/PdfViewer/SkPdfType1FormDictionary_autogen.h

Issue 17748002: Basic support for Type3 Fonts in Pdf + various refactorings (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 #ifndef __DEFINED__SkPdfType1FormDictionary
2 #define __DEFINED__SkPdfType1FormDictionary
3
4 #include "SkPdfEnums_autogen.h"
5 #include "SkPdfArray_autogen.h"
6 #include "SkPdfXObjectDictionary_autogen.h"
7
8 // Additional entries specific to a type 1 form dictionary
9 class SkPdfType1FormDictionary : public SkPdfXObjectDictionary {
10 public:
11 virtual SkPdfObjectType getType() const { return kType1FormDictionary_SkPdfObj ectType;}
12 virtual SkPdfObjectType getTypeEnd() const { return (SkPdfObjectType)(kType1Fo rmDictionary_SkPdfObjectType + 1);}
13 public:
14 virtual SkPdfType1FormDictionary* asType1FormDictionary() {return this;}
15 virtual const SkPdfType1FormDictionary* asType1FormDictionary() const {return this;}
16
17 private:
18 virtual SkPdfImageDictionary* asImageDictionary() {return NULL;}
19 virtual const SkPdfImageDictionary* asImageDictionary() const {return NULL;}
20
21 public:
22 private:
23 public:
24 SkPdfType1FormDictionary(const PdfMemDocument* podofoDoc = NULL, const PdfObje ct* podofoObj = NULL) : SkPdfXObjectDictionary(podofoDoc, podofoObj) {}
25
26 virtual bool valid() const {return true;}
27
28 SkPdfType1FormDictionary& operator=(const SkPdfType1FormDictionary& from) {thi s->fPodofoDoc = from.fPodofoDoc; this->fPodofoObj = from.fPodofoObj; return *thi s;}
29
30 /** (Optional) The type of PDF object that this dictionary describes; if present ,
31 * must be XObject for a form XObject.
32 **/
33 bool has_Type() const {
34 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Type" , "", NULL));
35 }
36
37 std::string Type() const {
38 std::string ret;
39 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Type", "", &ret)) return ret;
40 // TODO(edisonn): warn about missing required field, assert for known good p dfs
41 return "";
42 }
43
44 /** (Required) The type of XObject that this dictionary describes; must be Form
45 * for a form XObject.
46 **/
47 bool has_Subtype() const {
48 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Subty pe", "", NULL));
49 }
50
51 std::string Subtype() const {
52 std::string ret;
53 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Subtype", " ", &ret)) return ret;
54 // TODO(edisonn): warn about missing required field, assert for known good p dfs
55 return "";
56 }
57
58 /** (Optional) A code identifying the type of form XObject that this dictionary
59 * describes. The only valid value defined at the time of publication is 1. Def ault
60 * value: 1.
61 **/
62 bool has_FormType() const {
63 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "FormT ype", "", NULL));
64 }
65
66 long FormType() const {
67 long ret;
68 if (LongFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "FormType", "", &ret)) return ret;
69 // TODO(edisonn): warn about missing required field, assert for known good p dfs
70 return 0;
71 }
72
73 /** (Required in PDF 1.0; optional otherwise) The name by which this form
74 * XObject is referenced in the XObject subdictionary of the current resource
75 * dictionary (see Section 3.7.2, "Resource Dictionaries").
76 * Note: This entry is obsolescent and its use is no longer recommended. (See
77 * implementation note 38 in Appendix H.)
78 **/
79 bool has_Name() const {
80 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Name" , "", NULL));
81 }
82
83 std::string Name() const {
84 std::string ret;
85 if (NameFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Name", "", &ret)) return ret;
86 // TODO(edisonn): warn about missing required field, assert for known good p dfs
87 return "";
88 }
89
90 /** (Required if PieceInfo is present; optional otherwise; PDF 1.3) The date and
91 * time (see Section 3.8.2, "Dates") when the form XObject's contents were
92 * most recently modified. If a page-piece dictionary (PieceInfo) is present, t he
93 * modification date is used to ascertain which of the application data diction -
94 * aries it contains correspond to the current content of the form (see Section
95 * 9.4, "Page-Piece Dictionaries").
96 **/
97 bool has_LastModified() const {
98 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "LastM odified", "", NULL));
99 }
100
101 SkPdfDate LastModified() const {
102 SkPdfDate ret;
103 if (DateFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "LastModifie d", "", &ret)) return ret;
104 // TODO(edisonn): warn about missing required field, assert for known good p dfs
105 return SkPdfDate();
106 }
107
108 /** (Required) An array of four numbers in the form coordinate system (see
109 * below), giving the coordinates of the left, bottom, right, and top edges,
110 * respectively, of the form XObject's bounding box. These boundaries are used
111 * to clip the form XObject and to determine its size for caching.
112 **/
113 bool has_BBox() const {
114 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "BBox" , "", NULL));
115 }
116
117 SkRect BBox() const {
118 SkRect ret;
119 if (SkRectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "BBox", "" , &ret)) return ret;
120 // TODO(edisonn): warn about missing required field, assert for known good p dfs
121 return SkRect();
122 }
123
124 /** (Optional) An array of six numbers specifying the form matrix, which maps
125 * form space into user space (see Section 4.2.3, "Transformation Matrices").
126 * Default value: the identity matrix [1 0 0 1 0 0].
127 **/
128 bool has_Matrix() const {
129 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Matri x", "", NULL));
130 }
131
132 SkPdfArray Matrix() const {
133 SkPdfArray ret;
134 if (ArrayFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Matrix", " ", &ret)) return ret;
135 // TODO(edisonn): warn about missing required field, assert for known good p dfs
136 return SkPdfArray();
137 }
138
139 /** (Optional but strongly recommended; PDF 1.2) A dictionary specifying any
140 * resources (such as fonts and images) required by the form XObject (see Sec-
141 * tion 3.7, "Content Streams and Resources").
142 * In PDF 1.1 and earlier, all named resources used in the form XObject must be
143 * included in the resource dictionary of each page object on which the form
144 * XObject appears, whether or not they also appear in the resource dictionary
145 * of the form XObject itself. It can be useful to specify these resources in t he
146 * form XObject's own resource dictionary as well, in order to determine which
147 * resources are used inside the form XObject. If a resource is included in bot h
148 * dictionaries, it should have the same name in both locations.
149 * In PDF 1.2 and later versions, form XObjects can be independent of the
150 * content streams in which they appear, and this is strongly recommended
151 * although not required. In an independent form XObject, the resource dic -
152 * tionary of the form XObject is required and contains all named resource s
153 * used by the form XObject. These resources are not "promoted" to the out er
154 * content stream's resource dictionary, although that stream's resource d iction-
155 * ary will refer to the form XObject itself.
156 **/
157 bool has_Resources() const {
158 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Resou rces", "", NULL));
159 }
160
161 SkPdfDictionary* Resources() const {
162 SkPdfDictionary* ret;
163 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Resou rces", "", &ret)) return ret;
164 // TODO(edisonn): warn about missing required field, assert for known good p dfs
165 return NULL;
166 }
167
168 /** (Optional; PDF 1.4) A group attributes dictionary indicating that the conten ts
169 * of the form XObject are to be treated as a group and specifying the attribut es
170 * of that group (see Section 4.9.2, "Group XObjects").
171 * Note: If a Ref entry (see below) is present, the group attributes also apply to the
172 * external page imported by that entry. This allows such an imported page to b e
173 * treated as a group without further modification.
174 **/
175 bool has_Group() const {
176 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Group ", "", NULL));
177 }
178
179 SkPdfDictionary* Group() const {
180 SkPdfDictionary* ret;
181 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Group ", "", &ret)) return ret;
182 // TODO(edisonn): warn about missing required field, assert for known good p dfs
183 return NULL;
184 }
185
186 /** (Optional; PDF 1.4) A reference dictionary identifying a page to be imported
187 * from another PDF file, and for which the form XObject serves as a proxy (see
188 * Section 4.9.3, "Reference XObjects").
189 **/
190 bool has_Ref() const {
191 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Ref", "", NULL));
192 }
193
194 SkPdfDictionary* Ref() const {
195 SkPdfDictionary* ret;
196 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Ref", "", &ret)) return ret;
197 // TODO(edisonn): warn about missing required field, assert for known good p dfs
198 return NULL;
199 }
200
201 /** (Optional; PDF 1.4) A metadata stream containing metadata for the form
202 * XObject (see Section 9.2.2, "Metadata Streams").
203 **/
204 bool has_Metadata() const {
205 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Metad ata", "", NULL));
206 }
207
208 SkPdfStream* Metadata() const {
209 SkPdfStream* ret;
210 if (StreamFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Metadata" , "", &ret)) return ret;
211 // TODO(edisonn): warn about missing required field, assert for known good p dfs
212 return NULL;
213 }
214
215 /** (Optional; PDF 1.3) A page-piece dictionary associated with the form
216 * XObject (see Section 9.4, "Page-Piece Dictionaries").
217 **/
218 bool has_PieceInfo() const {
219 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Piece Info", "", NULL));
220 }
221
222 SkPdfDictionary* PieceInfo() const {
223 SkPdfDictionary* ret;
224 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Piece Info", "", &ret)) return ret;
225 // TODO(edisonn): warn about missing required field, assert for known good p dfs
226 return NULL;
227 }
228
229 /** (Required if the form XObject is a structural content item; PDF 1.3) The int eger
230 * key of the form XObject's entry in the structural parent tree (see "Finding
231 * Structure Elements from Content Items" on page 600).
232 **/
233 bool has_StructParent() const {
234 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Struc tParent", "", NULL));
235 }
236
237 long StructParent() const {
238 long ret;
239 if (LongFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "StructParen t", "", &ret)) return ret;
240 // TODO(edisonn): warn about missing required field, assert for known good p dfs
241 return 0;
242 }
243
244 /** (Required if the form XObject contains marked-content sequences that are str uc-
245 * tural content items; PDF 1.3) The integer key of the form XObject's entry in
246 * the structural parent tree (see "Finding Structure Elements from Content
247 * Items" on page 600).
248 * Note: At most one of the entries StructParent or StructParents may be presen t. A
249 * form XObject can be either a content item in its entirety or a container for
250 * marked-content sequences that are content items, but not both.
251 **/
252 bool has_StructParents() const {
253 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "Struc tParents", "", NULL));
254 }
255
256 long StructParents() const {
257 long ret;
258 if (LongFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "StructParen ts", "", &ret)) return ret;
259 // TODO(edisonn): warn about missing required field, assert for known good p dfs
260 return 0;
261 }
262
263 /** (Optional; PDF 1.2) An OPI version dictionary for the form XObject (see
264 * Section 9.10.6, "Open Prepress Interface (OPI)").
265 **/
266 bool has_OPI() const {
267 return (ObjectFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "OPI", "", NULL));
268 }
269
270 SkPdfDictionary* OPI() const {
271 SkPdfDictionary* ret;
272 if (DictionaryFromDictionary(fPodofoDoc, fPodofoObj->GetDictionary(), "OPI", "", &ret)) return ret;
273 // TODO(edisonn): warn about missing required field, assert for known good p dfs
274 return NULL;
275 }
276
277 };
278
279 #endif // __DEFINED__SkPdfType1FormDictionary
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698