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

Side by Side Diff: experimental/PdfViewer/autogen/pdfspec_autogen.py

Issue 18179007: refactor folders to make prepare for native pdf parser (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 5 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 import datatypes
2
3 def buildPdfSpec(pdfspec):
4 pdfspec.addClass('StreamCommonDictionary', 'Dictionary', 'Entries common to al l stream dictionaries')\
5 .required('NULL')\
6 .field('Length')\
7 .name('Length')\
8 .type('integer')\
9 .comment('(Required) The number of bytes from the beginning of the lin e fol-\nlowing the keyword stream to the last byte just before the keyword\nends tream. (There may be an additional EOL marker, preceding\nendstream, that is not included in the count and is not logically part\nof the stream data.) See "Stre am Extent," above, for further discus-\nsion.')\
10 .done().done()\
11 .optional()\
12 .field('Filter')\
13 .name('Filter')\
14 .type('name or array')\
15 .comment('(Optional) The name of a filter to be applied in processing the stream\ndata found between the keywords stream and endstream, or an array\no f such names. Multiple filters should be specified in the order in\nwhich they a re to be applied.')\
16 .done().done()\
17 .optional()\
18 .field('DecodeParms')\
19 .name('DecodeParms')\
20 .type('dictionary or array')\
21 .comment('(Optional) A parameter dictionary, or an array of such dicti onaries,\nused by the filters specified by Filter. If there is only one filter a nd that\nfilter has parameters, DecodeParms must be set to the filter\'s parame- \nter dictionary unless all the filter\'s parameters have their default\nvalues, in which case the DecodeParms entry may be omitted. If there\nare multiple filt ers and any of the filters has parameters set to non-\ndefault values, DecodePar ms must be an array with one entry for\neach filter: either the parameter dictio nary for that filter, or the null\nobject if that filter has no parameters (or i f all of its parameters have\ntheir default values). If none of the filters have parameters, or if all\ntheir parameters have default values, the DecodeParms en try may be\nomitted. (See implementation note 7 in Appendix H.)')\
22 .done().done()\
23 .optional()\
24 .field('F')\
25 .name('F')\
26 .type('file specification')\
27 .comment('(Optional; PDF 1.2) The file containing the stream data. If this entry\nis present, the bytes between stream and endstream are ignored, the\ nfilters are specified by FFilter rather than Filter, and the filter parame-\nte rs are specified by FDecodeParms rather than DecodeParms. How-\never, the Length entry should still specify the number of those bytes.\n(Usually there are no by tes and Length is 0.)')\
28 .done().done()\
29 .optional()\
30 .field('FFilter')\
31 .name('FFilter')\
32 .type('name or array')\
33 .comment('(Optional; PDF 1.2) The name of a filter to be applied in pr ocessing\nthe data found in the stream\'s external file, or an array of such nam es.\nThe same rules apply as for Filter.')\
34 .done().done()\
35 .optional()\
36 .field('FDecodeParms')\
37 .name('FDecodeParms')\
38 .type('dictionary or array')\
39 .comment('(Optional; PDF 1.2) A parameter dictionary, or an array of s uch dic-\ntionaries, used by the filters specified by FFilter. The same rules ap ply\nas for DecodeParms.')\
40 .done().done()\
41 .done()
42
43 pdfspec.addClass('LzwdecodeAndFlatedecodeFiltersDictionary', 'Dictionary', 'Op tional parameters for LZWDecode and FlateDecode filters')\
44 .optional()\
45 .field('Predictor')\
46 .name('Predictor')\
47 .type('integer')\
48 .comment('()A code that selects the predictor algorithm, if any. If th e value of this entry\nis 1, the filter assumes that the normal algorithm was us ed to encode the data,\nwithout prediction. If the value is greater than 1, the filter assumes that the\ndata was differenced before being encoded, and Predicto r selects the predic-\ntor algorithm. For more information regarding Predictor v alues greater\nthan 1, see "LZW and Flate Predictor Functions," below. Default v alue: 1.')\
49 .done().done()\
50 .optional()\
51 .field('Colors')\
52 .name('Colors')\
53 .type('integer')\
54 .comment('(Used only if Predictor is greater than 1) The number of int erleaved color com-\nponents per sample. Valid values are 1 to 4 in PDF 1.2 or e arlier, and 1 or\ngreater in PDF 1.3 or later. Default value: 1.')\
55 .done().done()\
56 .optional()\
57 .field('BitsPerComponent')\
58 .name('BitsPerComponent')\
59 .type('integer')\
60 .comment('(Used only if Predictor is greater than 1) The number of bit s used to represent\neach color component in a sample. Valid values are 1, 2, 4, and 8. Default\nvalue: 8.')\
61 .done().done()\
62 .optional()\
63 .field('Columns')\
64 .name('Columns')\
65 .type('integer')\
66 .comment('(Used only if Predictor is greater than 1) The number of sam ples in each row.\nDefault value: 1.')\
67 .done().done()\
68 .optional()\
69 .field('EarlyChange')\
70 .name('EarlyChange')\
71 .type('integer')\
72 .comment('(LZWDecode only) An indication of when to increase the code length. If the\nvalue of this entry is 0, code length increases are postponed as long as pos-\nsible. If it is 1, they occur one code early. This parameter is i ncluded because\nLZW sample code distributed by some vendors increases the code length one\ncode earlier than necessary. Default value: 1.')\
73 .done().done()\
74 .done()
75
76 pdfspec.addClass('CcittfaxdecodeFilterDictionary', 'Dictionary', 'Optional par ameters for the CCITTFaxDecode filter')\
77 .optional()\
78 .field('K')\
79 .name('K')\
80 .type('integer')\
81 .comment('()A code identifying the encoding scheme used:\n <0 Pure two-dimensional encoding (Group 4)\n 0 Pure one-dimensional encoding (Grou p 3, 1-D)\n >0 Mixed one- and two-dimensional encoding (Group 3,\n 2- D), in which a line encoded one-dimensionally can be\n followed by at mos t K - 1 lines encoded two-dimensionally\nThe filter distinguishes among negative , zero, and positive values of\nK to determine how to interpret the encoded data ; however, it does\nnot distinguish between different positive K values. Default value: 0.')\
82 .done().done()\
83 .optional()\
84 .field('EndOfLine')\
85 .name('EndOfLine')\
86 .type('boolean')\
87 .comment('()A flag indicating whether end-of-line bit patterns are req uired to be\npresent in the encoding. The CCITTFaxDecode filter always accepts\n end-of-line bit patterns, but requires them only if EndOfLine is true.\nDefault value: false.')\
88 .done().done()\
89 .optional()\
90 .field('EncodedByteAlign')\
91 .name('EncodedByteAlign')\
92 .type('boolean')\
93 .comment('()A flag indicating whether the filter expects extra 0 bits before each\nencoded line so that the line begins on a byte boundary. If true, t he\nfilter skips over encoded bits to begin decoding each line at a byte\nbounda ry. If false, the filter does not expect extra bits in the encod-\ned representa tion. Default value: false.')\
94 .done().done()\
95 .optional()\
96 .field('Columns')\
97 .name('Columns')\
98 .type('integer')\
99 .comment('()The width of the image in pixels. If the value is not a mu ltiple of 8,\nthe filter adjusts the width of the unencoded image to the next mu l-\ntiple of 8, so that each line starts on a byte boundary. Default value:\n172 8.')\
100 .done().done()\
101 .optional()\
102 .field('Rows')\
103 .name('Rows')\
104 .type('integer')\
105 .comment('()The height of the image in scan lines. If the value is 0 o r absent, the\nimage\'s height is not predetermined, and the encoded data must b e\nterminated by an end-of-block bit pattern or by the end of the fil-\nter\'s d ata. Default value: 0.')\
106 .done().done()\
107 .optional()\
108 .field('EndOfBlock')\
109 .name('EndOfBlock')\
110 .type('boolean')\
111 .comment('()A flag indicating whether the filter expects the encoded d ata to be\nterminated by an end-of-block pattern, overriding the Rows pa-\nramet er. If false, the filter stops when it has decoded the number of\nlines indicate d by Rows or when its data has been exhausted, which-\never occurs first. The en d-of-block pattern is the CCITT end-of-\nfacsimile-block (EOFB) or return-to-con trol (RTC) appropriate for\nthe K parameter. Default value: true.')\
112 .done().done()\
113 .optional()\
114 .field('BlackIs1')\
115 .name('BlackIs1')\
116 .type('boolean')\
117 .comment('()A flag indicating whether 1 bits are to be interpreted as black pixels\nand 0 bits as white pixels, the reverse of the normal PDF conventi on\nfor image data. Default value: false.')\
118 .done().done()\
119 .optional()\
120 .field('DamagedRowsBeforeError')\
121 .name('DamagedRowsBeforeError')\
122 .type('integer')\
123 .comment('()The number of damaged rows of data to be tolerated before an\nerror occurs. This entry applies only if EndOfLine is true and K is\nnonnega tive. Tolerating a damaged row means locating its end in\nthe encoded data by se arching for an EndOfLine pattern and then\nsubstituting decoded data from the pr evious row if the previous\nrow was not damaged, or a white scan line if the pre vious row was\nalso damaged. Default value: 0.')\
124 .done().done()\
125 .done()
126
127 pdfspec.addClass('Jbig2DecodeFilterDictionary', 'Dictionary', 'Optional parame ter for the JBIG2Decode filter')\
128 .optional()\
129 .field('JBIG2Globals')\
130 .name('JBIG2Globals')\
131 .type('stream')\
132 .comment('()A stream containing the JBIG2 global (page 0) segments. Gl obal segments\nmust be placed in this stream even if only a single JBIG2 image X Object refers\nto it.')\
133 .done().done()\
134 .done()
135
136 pdfspec.addClass('DctdecodeFilterDictionary', 'Dictionary', 'Optional paramete r for the DCTDecode filter')\
137 .optional()\
138 .field('ColorTransform')\
139 .name('ColorTransform')\
140 .type('integer')\
141 .comment('()A code specifying the transformation to be performed on th e sample values:\n 0 No transformation.\n 1 If the image has three c olor components, transform RGB values to\n YUV before encoding and from YUV to RGB after decoding. If the\n image has four components, transform CMYK values to YUVK be-\n fore encoding and from YUVK to CMYK after dec oding. This option\n is ignored if the image has one or two color compon ents.\nNote: The RGB and YUV used here have nothing to do with the color spaces de-\nfined as part of the Adobe imaging model. The purpose of converting from RG B\nto YUV is to separate luminance and chrominance information (see below).\nThe default value of ColorTransform is 1 if the image has three components\nand 0 o therwise. In other words, conversion between RGB and YUV is per-\nformed for all three-component images unless explicitly disabled by setting\nColorTransform to 0. Additionally, the encoding algorithm inserts an Adobe-\ndefined marker code in the encoded data indicating the ColorTransform value\nused. If present, this marker code overrides the ColorTransform value given to\nDCTDecode. Thus it is n ecessary to specify ColorTransform only when decod-\ning data that does not cont ain the Adobe-defined marker code.')\
142 .done().done()\
143 .done()
144
145 pdfspec.addClass('FileTrailerDictionary', 'Dictionary', 'Entries in the file t railer dictionary')\
146 .required('NULL')\
147 .field('Size')\
148 .name('Size')\
149 .type('integer')\
150 .comment('(Required) The total number of entries in the file\'s cross- reference table, as defined\nby the combination of the original section and all update sections. Equivalently, this\nvalue is 1 greater than the highest object number used in the file.')\
151 .done().done()\
152 .optional()\
153 .field('Prev')\
154 .name('Prev')\
155 .type('integer')\
156 .comment('(Present only if the file has more than one cross-reference section) The byte offset from\nthe beginning of the file to the beginning of the previous cross-reference section.')\
157 .done().done()\
158 .optional()\
159 .field('Root')\
160 .name('Root')\
161 .type('dictionary')\
162 .comment('(Required; must be an indirect reference) The catalog dictio nary for the PDF docu-\nment contained in the file (see Section 3.6.1, "Document Catalog").')\
163 .done().done()\
164 .optional()\
165 .field('Encrypt')\
166 .name('Encrypt')\
167 .type('dictionary')\
168 .comment('(Required if document is encrypted; PDF 1.1) The document\'s encryption dictionary\n(see Section 3.5, "Encryption").')\
169 .done().done()\
170 .optional()\
171 .field('Info')\
172 .name('Info')\
173 .type('dictionary')\
174 .comment('(Optional; must be an indirect reference) The document\'s in formation dictionary\n(see Section 9.2.1, "Document Information Dictionary").')\
175 .done().done()\
176 .optional()\
177 .field('ID')\
178 .name('ID')\
179 .type('array')\
180 .comment('(Optional; PDF 1.1) An array of two strings constituting a f ile identifier (see Section\n9.3, "File Identifiers") for the file.')\
181 .done().done()\
182 .done()
183
184 pdfspec.addClass('EncryptionCommonDictionary', 'Dictionary', 'Entries common t o all encryption dictionaries')\
185 .required('NULL')\
186 .field('Filter')\
187 .name('Filter')\
188 .type('name')\
189 .comment('(Required) The name of the security handler for this documen t; see below. Default value:\nStandard, for the built-in security handler. (Name s for other security handlers can be\nregistered using the procedure described i n Appendix E.)')\
190 .done().done()\
191 .optional()\
192 .field('V')\
193 .name('V')\
194 .type('number')\
195 .comment('(Optional but strongly recommended) A code specifying the al gorithm to be used in en-\ncrypting and decrypting the document:\n 0 An al gorithm that is undocumented and no longer supported, and whose use is\n strongly discouraged.\n 1 Algorithm 3.1 on page 73, with an encryption ke y length of 40 bits; see below.\n 2 (PDF 1.4) Algorithm 3.1 on page 73, bu t allowing encryption key lengths greater\n than 40 bits.\n 3 (PDF 1.4) An unpublished algorithm allowing encryption key lengths ranging\n from 40 to 128 bits. (This algorithm is unpublished as an export requirement of \n the U.S. Department of Commerce.)\nThe default value if this entry is omitted is 0, but a value of 1 or greater is strongly rec-\nommended. (See impl ementation note 15 in Appendix H.)')\
196 .done().done()\
197 .optional()\
198 .field('Length')\
199 .name('Length')\
200 .type('integer')\
201 .comment('(Optional; PDF 1.4; only if V is 2 or 3) The length of the e ncryption key, in bits. The value\nmust be a multiple of 8, in the range 40 to 1 28. Default value: 40.')\
202 .done().done()\
203 .done()
204
205 pdfspec.addClass('StandardSecurityHandlerDictionary', 'Dictionary', 'Additiona l encryption dictionary entries for the standard security handler')\
206 .required('NULL')\
207 .field('R')\
208 .name('R')\
209 .type('number')\
210 .comment('(Required) A number specifying which revision of the standar d security handler should\nbe used to interpret this dictionary. The revision nu mber should be 2 if the document is\nencrypted with a V value less than 2 (see T able 3.13) and does not have any of the access\npermissions set (via the P entry , below) that are designated "Revision 3" in Table 3.15;\notherwise (that is, if the document is encrypted with a V value greater than 2 or has any\n"Revision 3 " access permissions set), this value should be 3.')\
211 .done().done()\
212 .required('NULL')\
213 .field('O')\
214 .name('O')\
215 .type('string')\
216 .comment('(Required) A 32-byte string, based on both the owner and use r passwords, that is used in\ncomputing the encryption key and in determining wh ether a valid owner password was\nentered. For more information, see "Encryption Key Algorithm" on page 78 and "Pass-\nword Algorithms" on page 79.')\
217 .done().done()\
218 .required('NULL')\
219 .field('U')\
220 .name('U')\
221 .type('string')\
222 .comment('(Required) A 32-byte string, based on the user password, tha t is used in determining\nwhether to prompt the user for a password and, if so, whether a valid user or owner pass-\nword was entered. For more information, see "Password Algorithms" on page 79.')\
223 .done().done()\
224 .required('NULL')\
225 .field('P')\
226 .name('P')\
227 .type('integer')\
228 .comment('(Required) A set of flags specifying which operations are pe rmitted when the document is\nopened with user access (see Table 3.15).')\
229 .done().done()\
230 .done()
231
232 pdfspec.addClass('CatalogDictionary', 'Dictionary', 'Entries in the catalog di ctionary')\
233 .required('NULL')\
234 .field('Type')\
235 .name('Type')\
236 .type('name')\
237 .comment('(Required) The type of PDF object that this dictionary descr ibes; must\nbe Catalog for the catalog dictionary.')\
238 .done().done()\
239 .optional()\
240 .field('Version')\
241 .name('Version')\
242 .type('name')\
243 .comment('(Optional; PDF 1.4) The version of the PDF specification to which the\ndocument conforms (for example, 1.4), if later than the version speci fied\nin the file\'s header (see Section 3.4.1, "File Header"). If the header sp eci-\nfies a later version, or if this entry is absent, the document conforms to \nthe version specified in the header. This entry enables a PDF producer\napplic ation to update the version using an incremental update; see Sec-\ntion 3.4.5, " Incremental Updates." (See implementation note 18 in Ap-\npendix H.)\nNote: The value of this entry is a name object, not a number, and so must\nbe preceded by a slash character (/) when written in the PDF file (for ex-\nample, /1.4).')\
244 .done().done()\
245 .optional()\
246 .field('Pages')\
247 .name('Pages')\
248 .type('dictionary')\
249 .comment('(Required; must be an indirect reference) The page tree node that is the\nroot of the document\'s page tree (see Section 3.6.2, "Page Tree") .')\
250 .done().done()\
251 .optional()\
252 .field('PageLabels')\
253 .name('PageLabels')\
254 .type('number tree')\
255 .comment('(Optional; PDF 1.3) A number tree (see Section 3.8.5, "Numbe r Trees")\ndefining the page labeling for the document. The keys in this tree ar e\npage indices; the corresponding values are page label dictionaries (see\nSect ion 8.3.1, "Page Labels"). Each page index denotes the first page in a\nlabeling range to which the specified page label dictionary applies. The\ntree must incl ude a value for page index 0.')\
256 .done().done()\
257 .optional()\
258 .field('Names')\
259 .name('Names')\
260 .type('dictionary')\
261 .comment('(Optional; PDF 1.2) The document\'s name dictionary (see Sec tion 3.6.3,\n"Name Dictionary").')\
262 .done().done()\
263 .optional()\
264 .field('Dests')\
265 .name('Dests')\
266 .type('dictionary')\
267 .comment('(Optional; PDF 1.1; must be an indirect reference) A diction ary of names\nand corresponding destinations (see "Named Destinations" on page\n 476).')\
268 .done().done()\
269 .optional()\
270 .field('ViewerPreferences')\
271 .name('ViewerPreferences')\
272 .type('dictionary')\
273 .comment('(Optional; PDF 1.2) A viewer preferences dictionary (see Sec tion 8.1,\n"Viewer Preferences") specifying the way the document is to be dis-\n played on the screen. If this entry is absent, viewer applications should\nuse t heir own current user preference settings.')\
274 .done().done()\
275 .optional()\
276 .field('PageLayout')\
277 .name('PageLayout')\
278 .type('name')\
279 .comment('(Optional) A name object specifying the page layout to be us ed when the\ndocument is opened:\n SinglePage Display one page at a time.\n OneColumn Display the pages in one column.\n TwoColumn Left Display the pages in two columns, with odd-\n numbered pages on the left.\n TwoColumnRight Display the pages in two columns, with odd-\n numbered pages on the right.\n(See implementation note 19 in Appendix H.) Default value: SinglePage.')\
280 .done().done()\
281 .optional()\
282 .field('PageMode')\
283 .name('PageMode')\
284 .type('name')\
285 .comment('(Optional) A name object specifying how the document should be dis-\nplayed when opened:\n UseNone Neither document outline nor thumbnail im-\n ages visible\n UseOutlines Document outline visible\n UseThumbs Thumbnail images visible\n FullScreen Full-screen mode, with no menu bar, window\n controls, or any other window visible\nDefault value: UseNone.')\
286 .done().done()\
287 .optional()\
288 .field('Outlines')\
289 .name('Outlines')\
290 .type('dictionary')\
291 .comment('(Optional; must be an indirect reference) The outline dictio nary that is the\nroot of the document\'s outline hierarchy (see Section 8.2.2, "Document\nOutline").')\
292 .done().done()\
293 .optional()\
294 .field('Threads')\
295 .name('Threads')\
296 .type('array')\
297 .comment('(Optional; PDF 1.1; must be an indirect reference) An array of thread\ndictionaries representing the document\'s article threads (see Sectio n\n8.3.2, "Articles").')\
298 .done().done()\
299 .optional()\
300 .field('OpenAction')\
301 .name('OpenAction')\
302 .type('array or dictionary')\
303 .comment('(Optional; PDF 1.1) A value specifying a destination to be d isplayed or\nan action to be performed when the document is opened. The value is \neither an array defining a destination (see Section 8.2.1, "Destinations")\nor an action dictionary representing an action (Section 8.5, "Actions"). If\nthis entry is absent, the document should be opened to the top of the\nfirst page at the default magnification factor.')\
304 .done().done()\
305 .optional()\
306 .field('AA')\
307 .name('AA')\
308 .type('dictionary')\
309 .comment('(Optional; PDF 1.4) An additional-actions dictionary definin g the actions\nto be taken in response to various trigger events affecting the d ocument\nas a whole (see "Trigger Events" on page 514). (See also implementation \nnote 20 in Appendix H.)')\
310 .done().done()\
311 .optional()\
312 .field('URI')\
313 .name('URI')\
314 .type('dictionary')\
315 .comment('(Optional) A URI dictionary containing document-level inform ation for\nURI (uniform resource identifier) actions (see "URI Actions" on page\ n523).')\
316 .done().done()\
317 .optional()\
318 .field('AcroForm')\
319 .name('AcroForm')\
320 .type('dictionary')\
321 .comment('(Optional; PDF 1.2) The document\'s interactive form (AcroFo rm) dic-\ntionary (see Section 8.6.1, "Interactive Form Dictionary").')\
322 .done().done()\
323 .optional()\
324 .field('Metadata')\
325 .name('Metadata')\
326 .type('stream')\
327 .comment('(Optional; PDF 1.4; must be an indirect reference) A metadat a stream\ncontaining metadata for the document (see Section 9.2.2, "Metadata\nSt reams").')\
328 .done().done()\
329 .optional()\
330 .field('StructTreeRoot')\
331 .name('StructTreeRoot')\
332 .type('dictionary')\
333 .comment('(Optional; PDF 1.3) The document\'s structure tree root dict ionary (see\nSection 9.6.1, "Structure Hierarchy").')\
334 .done().done()\
335 .optional()\
336 .field('MarkInfo')\
337 .name('MarkInfo')\
338 .type('dictionary')\
339 .comment('(Optional; PDF 1.4) A mark information dictionary containing informa-\ntion about the document\'s usage of Tagged PDF conventions (see Sec-\ ntion 9.7.1, "Mark Information Dictionary").')\
340 .done().done()\
341 .optional()\
342 .field('Lang')\
343 .name('Lang')\
344 .type('text string')\
345 .comment('(Optional; PDF 1.4) A language identifier specifying the nat ural language\nfor all text in the document except where overridden by language speci-\nfications for structure elements or marked content (see Section 9.8.1,\n "Natural Language Specification"). If this entry is absent, the language is\ncon sidered unknown.')\
346 .done().done()\
347 .optional()\
348 .field('SpiderInfo')\
349 .name('SpiderInfo')\
350 .type('dictionary')\
351 .comment('(Optional; PDF 1.3) A Web Capture information dictionary con taining\nstate information used by the Acrobat Web Capture (AcroSpider) plug-\ni n extension (see Section 9.9.1, "Web Capture Information Dictionary").')\
352 .done().done()\
353 .optional()\
354 .field('OutputIntents')\
355 .name('OutputIntents')\
356 .type('array')\
357 .comment('(Optional; PDF 1.4) An array of output intent dictionaries d escribing the\ncolor characteristics of output devices on which the document mig ht be\nrendered (see "Output Intents" on page 684).')\
358 .done().done()\
359 .done()
360
361 pdfspec.addClass('PageTreeNodeDictionary', 'Dictionary', 'Required entries in a page tree node')\
362 .required('NULL')\
363 .field('Type')\
364 .name('Type')\
365 .type('name')\
366 .comment('(Required) The type of PDF object that this dictionary descr ibes; must be Pages for\na page tree node.')\
367 .done().done()\
368 .optional()\
369 .field('Parent')\
370 .name('Parent')\
371 .type('dictionary')\
372 .comment('(Required except in root node; must be an indirect reference ) The page tree node that\nis the immediate parent of this one.')\
373 .done().done()\
374 .required('NULL')\
375 .field('Kids')\
376 .name('Kids')\
377 .type('array')\
378 .comment('(Required) An array of indirect references to the immediate children of this node.\nThe children may be page objects or other page tree node s.')\
379 .done().done()\
380 .required('NULL')\
381 .field('Count')\
382 .name('Count')\
383 .type('integer')\
384 .comment('(Required) The number of leaf nodes (page objects) that are descendants of this\nnode within the page tree.')\
385 .done().done()\
386 .done()
387
388 pdfspec.addClass('PageObjectDictionary', 'Dictionary', 'Entries in a page obje ct')\
389 .required('NULL')\
390 .field('Type')\
391 .name('Type')\
392 .type('name')\
393 .comment('(Required) The type of PDF object that this dictionary descr ibes; must be\nPage for a page object.')\
394 .done().done()\
395 .optional()\
396 .field('Parent')\
397 .name('Parent')\
398 .type('dictionary')\
399 .comment('(Required; must be an indirect reference) The page tree node that is the im-\nmediate parent of this page object.')\
400 .done().done()\
401 .optional()\
402 .field('LastModified')\
403 .name('LastModified')\
404 .type('date')\
405 .comment('(Required if PieceInfo is present; optional otherwise; PDF 1 .3) The date and\ntime (see Section 3.8.2, "Dates") when the page\'s contents we re most re-\ncently modified. If a page-piece dictionary (PieceInfo) is present, the\nmodification date is used to ascertain which of the application data dic-\ ntionaries that it contains correspond to the current content of the page\n(see Section 9.4, "Page-Piece Dictionaries").')\
406 .done().done()\
407 .required('NULL')\
408 .field('Resources')\
409 .name('Resources')\
410 .type('dictionary')\
411 .comment('(Required; inheritable) A dictionary containing any resource s required by\nthe page (see Section 3.7.2, "Resource Dictionaries"). If the pag e requires\nno resources, the value of this entry should be an empty dictionary; omit-\nting the entry entirely indicates that the resources are to be inherited from\nan ancestor node in the page tree.')\
412 .done().done()\
413 .required('NULL')\
414 .field('MediaBox')\
415 .name('MediaBox')\
416 .type('rectangle')\
417 .comment('(Required; inheritable) A rectangle (see Section 3.8.3, "Rec tangles"), ex-\npressed in default user space units, defining the boundaries of the physical\nmedium on which the page is intended to be displayed or printed (s ee\nSection 9.10.1, "Page Boundaries").')\
418 .done().done()\
419 .optional()\
420 .field('CropBox')\
421 .name('CropBox')\
422 .type('rectangle')\
423 .comment('(Optional; inheritable) A rectangle, expressed in default us er space units,\ndefining the visible region of default user space. When the pag e is dis-\nplayed or printed, its contents are to be clipped (cropped) to this r ectangle\nand then imposed on the output medium in some implementation-\ndefined manner (see Section 9.10.1, "Page Boundaries"). Default value:\nthe value of Me diaBox.')\
424 .done().done()\
425 .optional()\
426 .field('BleedBox')\
427 .name('BleedBox')\
428 .type('rectangle')\
429 .comment('(Optional; PDF 1.3) A rectangle, expressed in default user s pace units, de-\nfining the region to which the contents of the page should be c lipped\nwhen output in a production environment (see Section 9.10.1, "Page\nBoun daries"). Default value: the value of CropBox.')\
430 .done().done()\
431 .optional()\
432 .field('TrimBox')\
433 .name('TrimBox')\
434 .type('rectangle')\
435 .comment('(Optional; PDF 1.3) A rectangle, expressed in default user s pace units, de-\nfining the intended dimensions of the finished page after trimm ing (see\nSection 9.10.1, "Page Boundaries"). Default value: the value of CropBo x.')\
436 .done().done()\
437 .optional()\
438 .field('ArtBox')\
439 .name('ArtBox')\
440 .type('rectangle')\
441 .comment('(Optional; PDF 1.3) A rectangle, expressed in default user s pace units, de-\nfining the extent of the page\'s meaningful content (including potential\nwhite space) as intended by the page\'s creator (see Section 9.10.1, "Page\nBoundaries"). Default value: the value of CropBox.')\
442 .done().done()\
443 .optional()\
444 .field('BoxColorInfo')\
445 .name('BoxColorInfo')\
446 .type('dictionary')\
447 .comment('(Optional) A box color information dictionary specifying the colors and\nother visual characteristics to be used in displaying guidelines on the\nscreen for the various page boundaries (see "Display of Page Boundaries"\n on page 679). If this entry is absent, the viewer application should use its\now n current default settings.')\
448 .done().done()\
449 .optional()\
450 .field('Contents')\
451 .name('Contents')\
452 .type('stream or array')\
453 .comment('(Optional) A content stream (see Section 3.7.1, "Content Str eams") de-\nscribing the contents of this page. If this entry is absent, the pag e is empty.\nThe value may be either a single stream or an array of streams. If it is an\narray, the effect is as if all of the streams in the array were concat enated, in\norder, to form a single stream. This allows a program generating a P DF\nfile to create image objects and other resources as they occur, even though\ nthey interrupt the content stream. The division between streams may\noccur only at the boundaries between lexical tokens (see Section 3.1, "Lex-\nical Conventi ons"), but is unrelated to the page\'s logical content or orga-\nnization. Appli cations that consume or produce PDF files are not required\nto preserve the exis ting structure of the Contents array. (See implementa-\ntion note 22 in Appendix H.)')\
454 .done().done()\
455 .optional()\
456 .field('Rotate')\
457 .name('Rotate')\
458 .type('integer')\
459 .comment('(Optional; inheritable) The number of degrees by which the p age should\nbe rotated clockwise when displayed or printed. The value must be a mul-\ntiple of 90. Default value: 0.')\
460 .done().done()\
461 .optional()\
462 .field('Group')\
463 .name('Group')\
464 .type('dictionary')\
465 .comment('(Optional; PDF 1.4) A group attributes dictionary specifying the attributes\nof the page\'s page group for use in the transparent imaging mo del (see\nSections 7.3.6, "Page Group," and 7.5.5, "Transparency Group XObjects" ).')\
466 .done().done()\
467 .optional()\
468 .field('Thumb')\
469 .name('Thumb')\
470 .type('stream')\
471 .comment('(Optional) A stream object defining the page\'s thumbnail im age (see Sec-\ntion 8.2.3, "Thumbnail Images").')\
472 .done().done()\
473 .optional()\
474 .field('B')\
475 .name('B')\
476 .type('array')\
477 .comment('(Optional; PDF 1.1; recommended if the page contains article beads) An ar-\nray of indirect references to article beads appearing on the pag e (see Sec-\ntion 8.3.2, "Articles"; see also implementation note 23 in Appendix H).\nThe beads are listed in the array in natural reading order.')\
478 .done().done()\
479 .optional()\
480 .field('Dur')\
481 .name('Dur')\
482 .type('number')\
483 .comment('(Optional; PDF 1.1) The page\'s display duration (also calle d its advance\ntiming): the maximum length of time, in seconds, that the page wi ll be\ndisplayed during presentations before the viewer application automati-\nc ally advances to the next page (see Section 8.3.3, "Presentations"). By\ndefault , the viewer does not advance automatically.')\
484 .done().done()\
485 .optional()\
486 .field('Trans')\
487 .name('Trans')\
488 .type('dictionary')\
489 .comment('(Optional; PDF 1.1) A transition dictionary describing the t ransition effect\nto be used when displaying the page during presentations (see Section\n8.3.3, "Presentations").')\
490 .done().done()\
491 .optional()\
492 .field('Annots')\
493 .name('Annots')\
494 .type('array')\
495 .comment('(Optional) An array of annotation dictionaries representing annotations\nassociated with the page (see Section 8.4, "Annotations").')\
496 .done().done()\
497 .optional()\
498 .field('AA')\
499 .name('AA')\
500 .type('dictionary')\
501 .comment('(Optional; PDF 1.2) An additional-actions dictionary definin g actions to\nbe performed when the page is opened or closed (see Section 8.5.2, "Trig-\nger Events"; see also implementation note 24 in Appendix H).')\
502 .done().done()\
503 .optional()\
504 .field('Metadata')\
505 .name('Metadata')\
506 .type('stream')\
507 .comment('(Optional; PDF 1.4) A metadata stream containing metadata fo r the page\n(see Section 9.2.2, "Metadata Streams").')\
508 .done().done()\
509 .optional()\
510 .field('PieceInfo')\
511 .name('PieceInfo')\
512 .type('dictionary')\
513 .comment('(Optional; PDF 1.3) A page-piece dictionary associated with the page (see\nSection 9.4, "Page-Piece Dictionaries").')\
514 .done().done()\
515 .optional()\
516 .field('StructParents')\
517 .name('StructParents')\
518 .type('integer')\
519 .comment('(Required if the page contains structural content items; PDF 1.3) The inte-\nger key of the page\'s entry in the structural parent tree (see "Finding Struc-\nture Elements from Content Items" on page 600).')\
520 .done().done()\
521 .optional()\
522 .field('ID')\
523 .name('ID')\
524 .type('string')\
525 .comment('(Optional; PDF 1.3; indirect reference preferred) The digita l identifier of the\npage\'s parent Web Capture content set (see Section 9.9.5, "Object At-\ntributes Related to Web Capture").')\
526 .done().done()\
527 .optional()\
528 .field('PZ')\
529 .name('PZ')\
530 .type('number')\
531 .comment('(Optional; PDF 1.3) The page\'s preferred zoom (magnificatio n) factor: the\nfactor by which it should be scaled to achieve the "natural" dis play magni-\nfication (see Section 9.9.5, "Object Attributes Related to Web Capt ure").')\
532 .done().done()\
533 .optional()\
534 .field('SeparationInfo')\
535 .name('SeparationInfo')\
536 .type('dictionary')\
537 .comment('(Optional; PDF 1.3) A separation dictionary containing infor mation need-\ned to generate color separations for the page (see Section 9.10.3, "Separa-\ntion Dictionaries").')\
538 .done().done()\
539 .done()
540
541 pdfspec.addClass('NameDictionary', 'Dictionary', 'Entries in the name dictiona ry')\
542 .optional()\
543 .field('Dests')\
544 .name('Dests')\
545 .type('name tree')\
546 .comment('(Optional; PDF 1.2) A name tree mapping name strings to dest inations (see\n"Named Destinations" on page 476).')\
547 .done().done()\
548 .optional()\
549 .field('AP')\
550 .name('AP')\
551 .type('name tree')\
552 .comment('(Optional; PDF 1.3) A name tree mapping name strings to anno tation\nappearance streams (see Section 8.4.4, "Appearance Streams").')\
553 .done().done()\
554 .optional()\
555 .field('JavaScript')\
556 .name('JavaScript')\
557 .type('name tree')\
558 .comment('(Optional; PDF 1.3) A name tree mapping name strings to docu ment-level\nJavaScript(R) actions (see "JavaScript Actions" on page 556).')\
559 .done().done()\
560 .optional()\
561 .field('Pages')\
562 .name('Pages')\
563 .type('name tree')\
564 .comment('(Optional; PDF 1.3) A name tree mapping name strings to visi ble pages for\nuse in interactive forms (see Section 8.6.5, "Named Pages").')\
565 .done().done()\
566 .optional()\
567 .field('Templates')\
568 .name('Templates')\
569 .type('name tree')\
570 .comment('(Optional; PDF 1.3) A name tree mapping name strings to invi sible (tem-\nplate) pages for use in interactive forms (see Section 8.6.5, "Name d Pages").')\
571 .done().done()\
572 .optional()\
573 .field('IDS')\
574 .name('IDS')\
575 .type('name tree')\
576 .comment('(Optional; PDF 1.3) A name tree mapping digital identifiers to Web Capture\ncontent sets (see Section 9.9.3, "Content Sets").')\
577 .done().done()\
578 .optional()\
579 .field('URLS')\
580 .name('URLS')\
581 .type('name tree')\
582 .comment('(Optional; PDF 1.3) A name tree mapping uniform resource loc ators (URLs)\nto Web Capture content sets (see Section 9.9.3, "Content Sets").') \
583 .done().done()\
584 .optional()\
585 .field('EmbeddedFiles')\
586 .name('EmbeddedFiles')\
587 .type('name tree')\
588 .comment('(Optional; PDF 1.4) A name tree mapping name strings to embe dded file\nstreams (see Section 3.10.3, "Embedded File Streams").')\
589 .done().done()\
590 .done()
591
592 pdfspec.addClass('ResourceDictionary', 'Dictionary', 'Entries in a resource di ctionary')\
593 .optional()\
594 .field('ExtGState')\
595 .name('ExtGState')\
596 .type('dictionary')\
597 .comment('(Optional) A dictionary mapping resource names to graphics s tate parameter\ndictionaries (see Section 4.3.4, "Graphics State Parameter Dicti onaries").')\
598 .done().done()\
599 .optional()\
600 .field('ColorSpace')\
601 .name('ColorSpace')\
602 .type('dictionary')\
603 .comment('(Optional) A dictionary mapping each resource name to either the name of a\ndevice-dependent color space or an array describing a color spac e (see Sec-\ntion 4.5, "Color Spaces").')\
604 .done().done()\
605 .optional()\
606 .field('Pattern')\
607 .name('Pattern')\
608 .type('dictionary')\
609 .comment('(Optional) A dictionary mapping resource names to pattern ob jects (see Sec-\ntion 4.6, "Patterns").')\
610 .done().done()\
611 .optional()\
612 .field('Shading')\
613 .name('Shading')\
614 .type('dictionary')\
615 .comment('(Optional; PDF 1.3) A dictionary mapping resource names to s hading dic-\ntionaries (see "Shading Dictionaries" on page 233).')\
616 .done().done()\
617 .optional()\
618 .field('XObject')\
619 .name('XObject')\
620 .type('dictionary')\
621 .comment('(Optional) A dictionary mapping resource names to external o bjects (see Sec-\ntion 4.7, "External Objects").')\
622 .done().done()\
623 .optional()\
624 .field('Font')\
625 .name('Font')\
626 .type('dictionary')\
627 .comment('(Optional) A dictionary mapping resource names to font dicti onaries (see\nChapter 5).')\
628 .done().done()\
629 .optional()\
630 .field('ProcSet')\
631 .name('ProcSet')\
632 .type('array')\
633 .comment('(Optional) An array of predefined procedure set names (see S ection 9.1,\n"Procedure Sets").')\
634 .done().done()\
635 .optional()\
636 .field('Properties')\
637 .name('Properties')\
638 .type('dictionary')\
639 .comment('(Optional; PDF 1.2) A dictionary mapping resource names to p roperty list\ndictionaries for marked content (see Section 9.5.1, "Property List s").')\
640 .done().done()\
641 .done()
642
643 pdfspec.addClass('NameTreeNodeDictionary', 'Dictionary', 'Entries in a name tr ee node dictionary')\
644 .optional()\
645 .field('Kids')\
646 .name('Kids')\
647 .type('array')\
648 .comment('(Root and intermediate nodes only; required in intermediate nodes; present in the root node\nif and only if Names is not present) An array o f indirect references to the immediate chil-\ndren of this node. The children ma y be intermediate or leaf nodes.')\
649 .done().done()\
650 .optional()\
651 .field('Names')\
652 .name('Names')\
653 .type('array')\
654 .comment('(Root and leaf nodes only; required in leaf nodes; present i n the root node if and only if Kids\nis not present) An array of the form\n [ key1 value1 key2 value2 ... keyn valuen ]\nwhere each keyi is a string and the c orresponding valuei is an indirect reference to the\nobject associated with that key. The keys are sorted in lexical order, as described below.')\
655 .done().done()\
656 .optional()\
657 .field('Limits')\
658 .name('Limits')\
659 .type('array')\
660 .comment('(Intermediate and leaf nodes only; required) An array of two strings, specifying the (lexi-\ncally) least and greatest keys included in the Names array of a leaf node or in the Names\narrays of any leaf nodes that are de scendants of an intermediate node.')\
661 .done().done()\
662 .done()
663
664 pdfspec.addClass('NumberTreeNodeDictionary', 'Dictionary', 'Entries in a numbe r tree node dictionary')\
665 .optional()\
666 .field('Kids')\
667 .name('Kids')\
668 .type('array')\
669 .comment('(Root and intermediate nodes only; required in intermediate nodes; present in the root node\nif and only if Nums is not present) An array of indirect references to the immediate chil-\ndren of this node. The children may be intermediate or leaf nodes.')\
670 .done().done()\
671 .optional()\
672 .field('Nums')\
673 .name('Nums')\
674 .type('array')\
675 .comment('(Root and leaf nodes only; required in leaf nodes; present i n the root node if and only if Kids\nis not present) An array of the form\n [ key1 value1 key2 value2 ... keyn valuen ]\nwhere each keyi is an integer and the corresponding valuei is an indirect reference to the\nobject associated with th at key. The keys are sorted in numerical order, analogously to\nthe arrangement of keys in a name tree as described in Section 3.8.4, "Name Trees."')\
676 .done().done()\
677 .optional()\
678 .field('Limits')\
679 .name('Limits')\
680 .type('array')\
681 .comment('(Intermediate and leaf nodes only; required) An array of two integers, specifying the\n(numerically) least and greatest keys included in the Nums array of a leaf node or in the\nNums arrays of any leaf nodes that are des cendants of an intermediate node.')\
682 .done().done()\
683 .done()
684
685 pdfspec.addClass('FunctionCommonDictionary', 'Dictionary', 'Entries common to all function dictionaries')\
686 .required('NULL')\
687 .field('FunctionType')\
688 .name('FunctionType')\
689 .type('integer')\
690 .comment('(Required) The function type:\n 0 Sampled function\n 2 Exponential interpolation function\n 3 Stitching function\n 4 PostScript calculator function')\
691 .done().done()\
692 .required('NULL')\
693 .field('Domain')\
694 .name('Domain')\
695 .type('array')\
696 .comment('(Required) An array of 2 x m numbers, where m is the number of input\nvalues. For each i from 0 to m - 1, Domain2i must be less than or equa l to\nDomain2i+1 , and the ith input value, xi , must lie in the interval\nDomai n2i <= xi <= Domain2i+1 . Input values outside the declared domain are\nclipped to the nearest boundary value.')\
697 .done().done()\
698 .optional()\
699 .field('Range')\
700 .name('Range')\
701 .type('array')\
702 .comment('(Required for type 0 and type 4 functions, optional otherwis e; see below) An\narray of 2 x n numbers, where n is the number of output values . For each j\nfrom 0 to n - 1, Range2j must be less than or equal to Range2j+1 , and the jth\noutput value, yj , must lie in the interval Range2j <= yj <= Range 2j+1 . Output\nvalues outside the declared range are clipped to the nearest boun dary value.\nIf this entry is absent, no clipping is done.')\
703 .done().done()\
704 .done()
705
706 pdfspec.addClass('Type0FunctionDictionary', 'Dictionary', 'Additional entries specific to a type 0 function dictionary')\
707 .required('NULL')\
708 .field('Size')\
709 .name('Size')\
710 .type('array')\
711 .comment('(Required) An array of m positive integers specifying the nu mber of samples\nin each input dimension of the sample table.')\
712 .done().done()\
713 .required('NULL')\
714 .field('BitsPerSample')\
715 .name('BitsPerSample')\
716 .type('integer')\
717 .comment('(Required) The number of bits used to represent each sample. (If the function\nhas multiple output values, each one occupies BitsPerSample b its.) Valid\nvalues are 1, 2, 4, 8, 12, 16, 24, and 32.')\
718 .done().done()\
719 .optional()\
720 .field('Order')\
721 .name('Order')\
722 .type('integer')\
723 .comment('(Optional) The order of interpolation between samples. Valid values are 1\nand 3, specifying linear and cubic spline interpolation, respecti vely. (See im-\nplementation note 26 in Appendix H.) Default value: 1.')\
724 .done().done()\
725 .optional()\
726 .field('Encode')\
727 .name('Encode')\
728 .type('array')\
729 .comment('(Optional) An array of 2 x m numbers specifying the linear m apping of input\nvalues into the domain of the function\'s sample table. Default value:\n[0 (Size0 - 1) 0 (Size1 - 1) ...].')\
730 .done().done()\
731 .optional()\
732 .field('Decode')\
733 .name('Decode')\
734 .type('array')\
735 .comment('(Optional) An array of 2 x n numbers specifying the linear m apping of sam-\nple values into the range appropriate for the function\'s output values. Default\nvalue: same as the value of Range.')\
736 .done().done()\
737 .done()
738
739 pdfspec.addClass('Type2FunctionDictionary', 'Dictionary', 'Additional entries specific to a type 2 function dictionary')\
740 .optional()\
741 .field('C0')\
742 .name('C0')\
743 .type('array')\
744 .comment('(Optional) An array of n numbers defining the function resul t when x = 0.0 (hence the "0"\nin the name). Default value: [0.0].')\
745 .done().done()\
746 .optional()\
747 .field('C1')\
748 .name('C1')\
749 .type('array')\
750 .comment('(Optional) An array of n numbers defining the function resul t when x = 1.0 (hence the "1"\nin the name). Default value: [1.0].')\
751 .done().done()\
752 .required('NULL')\
753 .field('N')\
754 .name('N')\
755 .type('number')\
756 .comment('(Required) The interpolation exponent. Each input value x wi ll return n values, given by\nyj = C0j + xN x (C1j - C0j ), for 0 <= j < n.')\
757 .done().done()\
758 .done()
759
760 pdfspec.addClass('Type3FunctionDictionary', 'Dictionary', 'Additional entries specific to a type 3 function dictionary')\
761 .required('NULL')\
762 .field('Functions')\
763 .name('Functions')\
764 .type('array')\
765 .comment('(Required) An array of k 1-input functions making up the sti tching function. The out-\nput dimensionality of all functions must be the same, and compatible with the value of\nRange if Range is present.')\
766 .done().done()\
767 .required('NULL')\
768 .field('Bounds')\
769 .name('Bounds')\
770 .type('array')\
771 .comment('(Required) An array of k - 1 numbers that, in combination wi th Domain, define the\nintervals to which each function from the Functions array applies. Bounds elements\nmust be in order of increasing value, and each value must be within the domain\ndefined by Domain.')\
772 .done().done()\
773 .required('NULL')\
774 .field('Encode')\
775 .name('Encode')\
776 .type('array')\
777 .comment('(Required) An array of 2 x k numbers that, taken in pairs, m ap each subset of the do-\nmain defined by Domain and the Bounds array to the do main of the corresponding\nfunction.')\
778 .done().done()\
779 .done()
780
781 pdfspec.addClass('FileSpecificationDictionary', 'Dictionary', 'Entries in a fi le specification dictionary')\
782 .optional()\
783 .field('Type')\
784 .name('Type')\
785 .type('name')\
786 .comment('(Required if an EF or RF entry is present; recommended alway s) The type of PDF object\nthat this dictionary describes; must be Filespec for a file specification dictionary.')\
787 .done().done()\
788 .optional()\
789 .field('FS')\
790 .name('FS')\
791 .type('name')\
792 .comment('(Optional) The name of the file system to be used to interpr et this file specification. If\nthis entry is present, all other entries in the dictionary are interpreted by the desig-\nnated file system. PDF defines only on e standard file system, URL (see Section 3.10.4,\n"URL Specifications"); a viewe r application or plug-in extension can register a differ-\nent one (see Appendix E). Note that this entry is independent of the F, DOS, Mac, and\nUnix entries.' )\
793 .done().done()\
794 .optional()\
795 .field('F')\
796 .name('F')\
797 .type('string')\
798 .comment('(Required if the DOS, Mac, and Unix entries are all absent) A file specification string of\nthe form described in Section 3.10.1, "File Spec ification Strings," or (if the file system\nis URL) a uniform resource locator, as described in Section 3.10.4, "URL Specifica-\ntions."')\
799 .done().done()\
800 .optional()\
801 .field('DOS')\
802 .name('DOS')\
803 .type('string')\
804 .comment('(Optional) A file specification string (see Section 3.10.1, "File Specification Strings")\nrepresenting a DOS file name.')\
805 .done().done()\
806 .optional()\
807 .field('Mac')\
808 .name('Mac')\
809 .type('string')\
810 .comment('(Optional) A file specification string (see Section 3.10.1, "File Specification Strings")\nrepresenting a Mac OS file name.')\
811 .done().done()\
812 .optional()\
813 .field('Unix')\
814 .name('Unix')\
815 .type('string')\
816 .comment('(Optional) A file specification string (see Section 3.10.1, "File Specification Strings")\nrepresenting a UNIX file name.')\
817 .done().done()\
818 .optional()\
819 .field('ID')\
820 .name('ID')\
821 .type('array')\
822 .comment('(Optional) An array of two strings constituting a file ident ifier (see Section 9.3, "File\nIdentifiers") that is also included in the refere nced file. The use of this entry improves\na viewer application\'s chances of fi nding the intended file and allows it to warn the\nuser if the file has changed since the link was made.')\
823 .done().done()\
824 .optional()\
825 .field('V')\
826 .name('V')\
827 .type('boolean')\
828 .comment('(Optional; PDF 1.2) A flag indicating whether the file refer enced by the file specifica-\ntion is volatile (changes frequently with time). I f the value is true, viewer applications\nshould never cache a copy of the file. For example, a movie annotation referencing a\nURL to a live video camera could set this flag to true, notifying the application that it\nshould reacquire the movie each time it is played. Default value: false.')\
829 .done().done()\
830 .optional()\
831 .field('EF')\
832 .name('EF')\
833 .type('dictionary')\
834 .comment('(Required if RF is present; PDF 1.3) A dictionary containing a subset of the keys F,\nDOS, Mac, and Unix, corresponding to the entries by th ose names in the file specifica-\ntion dictionary. The value of each such key is an embedded file stream (see Section\n3.10.3, "Embedded File Streams") containi ng the corresponding file. If this entry is\npresent, the Type entry is required and the file specification dictionary must be indi-\nrectly referenced.')\
835 .done().done()\
836 .optional()\
837 .field('RF')\
838 .name('RF')\
839 .type('dictionary')\
840 .comment('(Optional; PDF 1.3) A dictionary with the same structure as the EF dictionary, which\nmust also be present. Each key in the RF dictionary mu st also be present in the EF dic-\ntionary. Each value is a related files array (see "Related Files Arrays" on page 125)\nidentifying files that are related to the corresponding file in the EF dictionary. If this\nentry is present, the Type entry is required and the file specification dictionary must\nbe indirectly ref erenced.')\
841 .done().done()\
842 .done()
843
844 pdfspec.addClass('EmbeddedFileStreamDictionary', 'Dictionary', 'Additional ent ries in an embedded file stream dictionary')\
845 .optional()\
846 .field('Type')\
847 .name('Type')\
848 .type('name')\
849 .comment('(Optional) The type of PDF object that this dictionary descr ibes; if present,\nmust be EmbeddedFile for an embedded file stream.')\
850 .done().done()\
851 .optional()\
852 .field('Subtype')\
853 .name('Subtype')\
854 .type('name')\
855 .comment('(Optional) The subtype of the embedded file. The value of th is entry must be\na first-class name, as defined in Appendix E. Names without a registered pre-\nfix must conform to the MIME media type names defined in Intern et RFC\n2046, Multipurpose Internet Mail Extensions (MIME), Part Two: Media Type s\n(see the Bibliography), with the provision that characters not allowed in\nna mes must use the 2-character hexadecimal code format described in Sec-\ntion 3.2 .4, "Name Objects."')\
856 .done().done()\
857 .optional()\
858 .field('Params')\
859 .name('Params')\
860 .type('dictionary')\
861 .comment('(Optional) An embedded file parameter dictionary containing additional, file-\nspecific information (see Table 3.34).')\
862 .done().done()\
863 .done()
864
865 pdfspec.addClass('EmbeddedFileParameterDictionary', 'Dictionary', 'Entries in an embedded file parameter dictionary')\
866 .optional()\
867 .field('Size')\
868 .name('Size')\
869 .type('integer')\
870 .comment('(Optional) The size of the embedded file, in bytes.')\
871 .done().done()\
872 .optional()\
873 .field('CreationDate')\
874 .name('CreationDate')\
875 .type('date')\
876 .comment('(Optional) The date and time when the embedded file was crea ted.')\
877 .done().done()\
878 .optional()\
879 .field('ModDate')\
880 .name('ModDate')\
881 .type('date')\
882 .comment('(Optional) The date and time when the embedded file was last modified.')\
883 .done().done()\
884 .optional()\
885 .field('Mac')\
886 .name('Mac')\
887 .type('dictionary')\
888 .comment('(Optional) A subdictionary containing additional information specific to\nMac OS files (see Table 3.35).')\
889 .done().done()\
890 .optional()\
891 .field('CheckSum')\
892 .name('CheckSum')\
893 .type('string')\
894 .comment('(Optional) A 16-byte string that is the checksum of the byte s of the uncom-\npressed embedded file. The checksum is calculated by applying t he standard\nMD5 message-digest algorithm (described in Internet RFC 1321, The M D5\nMessage-Digest Algorithm; see the Bibliography) to the bytes of the embedded \nfile stream.')\
895 .done().done()\
896 .done()
897
898 pdfspec.addClass('MacOsFileInformationDictionary', 'Dictionary', 'Entries in a Mac OS file information dictionary')\
899 .optional()\
900 .field('Subtype')\
901 .name('Subtype')\
902 .type('string')\
903 .comment('(Optional) The embedded file\'s file type.')\
904 .done().done()\
905 .optional()\
906 .field('Creator')\
907 .name('Creator')\
908 .type('string')\
909 .comment('(Optional) The embedded file\'s creator signature.')\
910 .done().done()\
911 .optional()\
912 .field('ResFork')\
913 .name('ResFork')\
914 .type('stream')\
915 .comment('(Optional) The binary contents of the embedded file\'s resou rce fork.')\
916 .done().done()\
917 .done()
918
919 pdfspec.addClass('GraphicsStateDictionary', 'Dictionary', 'Entries in a graphi cs state parameter dictionary')\
920 .optional()\
921 .field('Type')\
922 .name('Type')\
923 .type('name')\
924 .comment('(Optional) The type of PDF object that this dictionary descr ibes; must be\nExtGState for a graphics state parameter dictionary.')\
925 .done().done()\
926 .optional()\
927 .field('LW')\
928 .name('LW')\
929 .type('number')\
930 .comment('(Optional; PDF 1.3) The line width (see "Line Width" on page 152).')\
931 .done().done()\
932 .optional()\
933 .field('LC')\
934 .name('LC')\
935 .type('integer')\
936 .comment('(Optional; PDF 1.3) The line cap style (see "Line Cap Style" on page 153).')\
937 .done().done()\
938 .optional()\
939 .field('LJ')\
940 .name('LJ')\
941 .type('integer')\
942 .comment('(Optional; PDF 1.3) The line join style (see "Line Join Styl e" on page 153).')\
943 .done().done()\
944 .optional()\
945 .field('ML')\
946 .name('ML')\
947 .type('number')\
948 .comment('(Optional; PDF 1.3) The miter limit (see "Miter Limit" on pa ge 153).')\
949 .done().done()\
950 .optional()\
951 .field('D')\
952 .name('D')\
953 .type('array')\
954 .comment('(Optional; PDF 1.3) The line dash pattern, expressed as an a rray of the form\n[dashArray dashPhase], where dashArray is itself an array and dashPhase is an\ninteger (see "Line Dash Pattern" on page 155).')\
955 .done().done()\
956 .optional()\
957 .field('RI')\
958 .name('RI')\
959 .type('name')\
960 .comment('(Optional; PDF 1.3) The name of the rendering intent (see "R endering\nIntents" on page 197).')\
961 .done().done()\
962 .optional()\
963 .field('OP')\
964 .name('OP')\
965 .type('boolean')\
966 .comment('(Optional) A flag specifying whether to apply overprint (see Section 4.5.6,\n"Overprint Control"). In PDF 1.2 and earlier, there is a single overprint\nparameter that applies to all painting operations. Beginning with PD F 1.3,\nthere are two separate overprint parameters: one for stroking and one fo r all\nother painting operations. Specifying an OP entry sets both parameters un -\nless there is also an op entry in the same graphics state parameter dictionar y,\nin which case the OP entry sets only the overprint parameter for stroking.') \
967 .done().done()\
968 .optional()\
969 .field('op')\
970 .name('op')\
971 .type('boolean')\
972 .comment('(Optional; PDF 1.3) A flag specifying whether to apply overp rint (see Section\n4.5.6, "Overprint Control") for painting operations other tha n stroking. If\nthis entry is absent, the OP entry, if any, sets this parameter. ')\
973 .done().done()\
974 .optional()\
975 .field('OPM')\
976 .name('OPM')\
977 .type('integer')\
978 .comment('(Optional; PDF 1.3) The overprint mode (see Section 4.5.6, " Overprint Con-\ntrol").')\
979 .done().done()\
980 .optional()\
981 .field('Font')\
982 .name('Font')\
983 .type('array')\
984 .comment('(Optional; PDF 1.3) An array of the form [font size], where font is an indirect\nreference to a font dictionary and size is a number express ed in text space\nunits. These two objects correspond to the operands of the Tf operator (see\nSection 5.2, "Text State Parameters and Operators"); however, the first oper-\nand is an indirect object reference instead of a resource name.')\
985 .done().done()\
986 .optional()\
987 .field('BG')\
988 .name('BG')\
989 .type('function')\
990 .comment('(Optional) The black-generation function, which maps the int erval [0.0 1.0]\nto the interval [0.0 1.0] (see Section 6.2.3, "Conversion from DeviceRGB to\nDeviceCMYK").')\
991 .done().done()\
992 .optional()\
993 .field('BG2')\
994 .name('BG2')\
995 .type('function or name')\
996 .comment('(Optional; PDF 1.3) Same as BG except that the value may als o be the name\nDefault, denoting the black-generation function that was in effec t at the start\nof the page. If both BG and BG2 are present in the same graphics state param-\neter dictionary, BG2 takes precedence.')\
997 .done().done()\
998 .optional()\
999 .field('UCR')\
1000 .name('UCR')\
1001 .type('function')\
1002 .comment('(Optional) The undercolor-removal function, which maps the i nterval\n[0.0 1.0] to the interval [-1.0 1.0] (see Section 6.2.3, "Conversion fr om\nDeviceRGB to DeviceCMYK").')\
1003 .done().done()\
1004 .optional()\
1005 .field('UCR2')\
1006 .name('UCR2')\
1007 .type('function or name')\
1008 .comment('(Optional; PDF 1.3) Same as UCR except that the value may al so be the name\nDefault, denoting the undercolor-removal function that was in ef fect at the\nstart of the page. If both UCR and UCR2 are present in the same gra phics state\nparameter dictionary, UCR2 takes precedence.')\
1009 .done().done()\
1010 .optional()\
1011 .field('TR')\
1012 .name('TR')\
1013 .type('function, array, or name')\
1014 .comment('(Optional) The transfer function, which maps the interval [0 .0 1.0] to the\ninterval [0.0 1.0] (see Section 6.3, "Transfer Functions"). The value is either\na single function (which applies to all process colorants) or a n array of four\nfunctions (which apply to the process colorants individually). The name\nIdentity may be used to represent the identity function.')\
1015 .done().done()\
1016 .optional()\
1017 .field('TR2')\
1018 .name('TR2')\
1019 .type('function, array, or name')\
1020 .comment('(Optional; PDF 1.3) Same as TR except that the value may als o be the name\nDefault, denoting the transfer function that was in effect at the start of the\npage. If both TR and TR2 are present in the same graphics state p arameter dic-\ntionary, TR2 takes precedence.')\
1021 .done().done()\
1022 .optional()\
1023 .field('HT')\
1024 .name('HT')\
1025 .type('dictionary, stream, or name')\
1026 .comment('(Optional) The halftone dictionary or stream (see Section 6. 4, "Halftones")\nor the name Default, denoting the halftone that was in effect a t the start of the\npage.')\
1027 .done().done()\
1028 .optional()\
1029 .field('FL')\
1030 .name('FL')\
1031 .type('number')\
1032 .comment('(Optional; PDF 1.3) The flatness tolerance (see Section 6.5. 1, "Flatness Toler-\nance").')\
1033 .done().done()\
1034 .optional()\
1035 .field('SM')\
1036 .name('SM')\
1037 .type('number')\
1038 .comment('(Optional; PDF 1.3) The smoothness tolerance (see Section 6. 5.2, "Smooth-\nness Tolerance").')\
1039 .done().done()\
1040 .optional()\
1041 .field('SA')\
1042 .name('SA')\
1043 .type('boolean')\
1044 .comment('(Optional) A flag specifying whether to apply automatic stro ke adjustment\n(see Section 6.5.4, "Automatic Stroke Adjustment").')\
1045 .done().done()\
1046 .optional()\
1047 .field('BM')\
1048 .name('BM')\
1049 .type('name or array')\
1050 .comment('(Optional; PDF 1.4) The current blend mode to be used in the transparent\nimaging model (see Sections 7.2.4, "Blend Mode," and 7.5.2, "Speci fying\nBlending Color Space and Blend Mode").')\
1051 .done().done()\
1052 .optional()\
1053 .field('SMask')\
1054 .name('SMask')\
1055 .type('dictionary or name')\
1056 .comment('(Optional; PDF 1.4) The current soft mask, specifying the ma sk shape or\nmask opacity values to be used in the transparent imaging model (se e\n"Source Shape and Opacity" on page 421 and "Mask Shape and Opacity" on\npage 443).\nNote: Although the current soft mask is sometimes referred to as a "soft clip,"\naltering it with the gs operator completely replaces the old value with the new\none, rather than intersecting the two as is done with the current clipp ing path\nparameter (see Section 4.4.3, "Clipping Path Operators").')\
1057 .done().done()\
1058 .optional()\
1059 .field('CA')\
1060 .name('CA')\
1061 .type('number')\
1062 .comment('(Optional; PDF 1.4) The current stroking alpha constant, spe cifying the con-\nstant shape or constant opacity value to be used for stroking operations in the\ntransparent imaging model (see "Source Shape and Opacity" on page 421\nand "Constant Shape and Opacity" on page 444).')\
1063 .done().done()\
1064 .optional()\
1065 .field('ca')\
1066 .name('ca')\
1067 .type('number')\
1068 .comment('(Optional; PDF 1.4) Same as CA, but for nonstroking operatio ns.')\
1069 .done().done()\
1070 .optional()\
1071 .field('AIS')\
1072 .name('AIS')\
1073 .type('boolean')\
1074 .comment('(Optional; PDF 1.4) The alpha source flag ("alpha is shape") , specifying\nwhether the current soft mask and alpha constant are to be interpr eted as\nshape values (true) or opacity values (false).')\
1075 .done().done()\
1076 .optional()\
1077 .field('TK')\
1078 .name('TK')\
1079 .type('boolean')\
1080 .comment('(Optional; PDF 1.4) The text knockout flag, which determines the behavior\nof overlapping glyphs within a text object in the transparent ima ging model\n(see Section 5.2.7, "Text Knockout").')\
1081 .done().done()\
1082 .done()
1083
1084 pdfspec.addClass('CalgrayColorSpaceDictionary', 'Dictionary', 'Entries in a Ca lGray color space dictionary')\
1085 .required('NULL')\
1086 .field('WhitePoint')\
1087 .name('WhitePoint')\
1088 .type('array')\
1089 .comment('(Required) An array of three numbers [XW YW ZW ] specifying the tri-\nstimulus value, in the CIE 1931 XYZ space, of the diffuse white point; see\n"CalRGB Color Spaces," below, for further discussion. The numbers XW and\n ZW must be positive, and YW must be equal to 1.0.')\
1090 .done().done()\
1091 .optional()\
1092 .field('BlackPoint')\
1093 .name('BlackPoint')\
1094 .type('array')\
1095 .comment('(Optional) An array of three numbers [ XB YB ZB ] specifying the tristimulus\nvalue, in the CIE 1931 XYZ space, of the diffuse black point; see "CalRGB\nColor Spaces," below, for further discussion. All three of these nu mbers must\nbe nonnegative. Default value: [0.0 0.0 0.0].')\
1096 .done().done()\
1097 .optional()\
1098 .field('Gamma')\
1099 .name('Gamma')\
1100 .type('number')\
1101 .comment('(Optional) A number G defining the gamma for the gray (A) co mponent. G\nmust be positive and will generally be greater than or equal to 1. D efault\nvalue: 1.')\
1102 .done().done()\
1103 .done()
1104
1105 pdfspec.addClass('CalrgbColorSpaceDictionary', 'Dictionary', 'Entries in a Cal RGB color space dictionary')\
1106 .required('NULL')\
1107 .field('WhitePoint')\
1108 .name('WhitePoint')\
1109 .type('array')\
1110 .comment('(Required) An array of three numbers [ XW YW ZW ] specifying the tristimulus value,\nin the CIE 1931 XYZ space, of the diffuse white point; see below for further discus-\nsion. The numbers XW and ZW must be positive, and YW must be equal to 1.0.')\
1111 .done().done()\
1112 .optional()\
1113 .field('BlackPoint')\
1114 .name('BlackPoint')\
1115 .type('array')\
1116 .comment('(Optional) An array of three numbers [ XB YB ZB ] specifying the tristimulus value, in\nthe CIE 1931 XYZ space, of the diffuse black point; see below for further discussion.\nAll three of these numbers must be nonnegativ e. Default value: [0.0 0.0 0.0].')\
1117 .done().done()\
1118 .optional()\
1119 .field('Gamma')\
1120 .name('Gamma')\
1121 .type('array')\
1122 .comment('(Optional) An array of three numbers [ GR GG GB ] specifying the gamma for the red,\ngreen, and blue (A, B, and C) components of the color s pace. Default value:\n[1.0 1.0 1.0].')\
1123 .done().done()\
1124 .optional()\
1125 .field('Matrix')\
1126 .name('Matrix')\
1127 .type('array')\
1128 .comment('(Optional) An array of nine numbers [ XA YA ZA XB YB ZB XC Y C ZC ] specifying\nthe linear interpretation of the decoded A, B, and C componen ts of the color space\nwith respect to the final XYZ representation. Default val ue: the identity matrix\n[1 0 0 0 1 0 0 0 1].')\
1129 .done().done()\
1130 .done()
1131
1132 pdfspec.addClass('LabColorSpaceDictionary', 'Dictionary', 'Entries in a Lab co lor space dictionary')\
1133 .required('NULL')\
1134 .field('WhitePoint')\
1135 .name('WhitePoint')\
1136 .type('array')\
1137 .comment('(Required) An array of three numbers [ XW YW ZW ] specifying the tristimulus value,\nin the CIE 1931 XYZ space, of the diffuse white point; see "CalRGB Color Spaces" on\npage 184 for further discussion. The numbers XW an d ZW must be positive, and YW\nmust be equal to 1.0.')\
1138 .done().done()\
1139 .optional()\
1140 .field('BlackPoint')\
1141 .name('BlackPoint')\
1142 .type('array')\
1143 .comment('(Optional) An array of three numbers [ XB YB ZB ] specifying the tristimulus value, in\nthe CIE 1931 XYZ space, of the diffuse black point; see "CalRGB Color Spaces" on\npage 184 for further discussion. All three of thes e numbers must be nonnegative.\nDefault value: [0.0 0.0 0.0].')\
1144 .done().done()\
1145 .optional()\
1146 .field('Range')\
1147 .name('Range')\
1148 .type('array')\
1149 .comment('(Optional) An array of four numbers [ amin amax bmin bmax ] specifying the range of\nvalid values for the a* and b* (B and C) components of the color space-that is,\n a min <= a* <= a max\nand\n b min <= b* <= b max\nComponent values falling outside the specified range will be adjusted to the nearest\nvalid value without error indication. Default value: [ -100 100 -10 0 100].')\
1150 .done().done()\
1151 .done()
1152
1153 pdfspec.addClass('IccProfileStreamDictionary', 'Dictionary', 'Additional entri es specific to an ICC profile stream dictionary')\
1154 .required('NULL')\
1155 .field('N')\
1156 .name('N')\
1157 .type('integer')\
1158 .comment('(Required) The number of color components in the color space described by the ICC\nprofile data. This number must match the number of compon ents actually in the ICC\nprofile. As of PDF 1.4, N must be 1, 3, or 4.')\
1159 .done().done()\
1160 .optional()\
1161 .field('Alternate')\
1162 .name('Alternate')\
1163 .type('array or name')\
1164 .comment('(Optional) An alternate color space to be used in case the o ne specified in the stream\ndata is not supported (for example, by viewer applic ations designed for earlier\nversions of PDF). The alternate space may be any va lid color space (except a Pattern\ncolor space) that has the number of component s specified by N. If this entry is omit-\nted and the viewer application does no t understand the ICC profile data, the color\nspace used will be DeviceGray, Dev iceRGB, or DeviceCMYK, depending on whether\nthe value of N is 1, 3, or 4, respe ctively.\nNote: Note that there is no conversion of source color values, such as a tint transforma-\ntion, when using the alternate color space. Color values th at are within the range of the\nICCBased color space might not be within the ran ge of the alternate color space. In this\ncase, the nearest values within the ra nge of the alternate space will be substituted.')\
1165 .done().done()\
1166 .optional()\
1167 .field('Range')\
1168 .name('Range')\
1169 .type('array')\
1170 .comment('(Optional) An array of 2 x N numbers [min0 max0 min1 max1 .. . ] specifying the\nminimum and maximum valid values of the corresponding color components.\nThese values must match the information in the ICC profile. Default value:\n[0.0 1.0 0.0 1.0 ...].')\
1171 .done().done()\
1172 .optional()\
1173 .field('Metadata')\
1174 .name('Metadata')\
1175 .type('stream')\
1176 .comment('(Optional; PDF 1.4) A metadata stream containing metadata fo r the color space (see\nSection 9.2.2, "Metadata Streams").')\
1177 .done().done()\
1178 .done()
1179
1180 pdfspec.addClass('DeviceNColorSpaceDictionary', 'Dictionary', 'Entry in a Devi ceN color space attributes dictionary')\
1181 .optional()\
1182 .field('Colorants')\
1183 .name('Colorants')\
1184 .type('dictionary')\
1185 .comment('(Optional) A dictionary describing the individual colorants used in the DeviceN\ncolor space. For each entry in this dictionary, the key is a colorant name and the\nvalue is an array defining a Separation color space for that colorant (see "Separa-\ntion Color Spaces" on page 201). The key must matc h the colorant name given in\nthat color space. The dictionary need not list all colorants used in the DeviceN\ncolor space and may list additional colorants.\n This dictionary has no effect on the operation of the DeviceN color space itself or\nthe appearance that it produces. However, it provides information about the indi-\nvidual colorants that may be useful to some applications. In particular, the alter-\nnate color space and tint transformation function of a Separation c olor space\ndescribe the appearance of that colorant alone, whereas those of a D eviceN color\nspace describe only the appearance of its colorants in combination .')\
1186 .done().done()\
1187 .done()
1188
1189 pdfspec.addClass('Type1PatternDictionary', 'Dictionary', 'Additional entries s pecific to a type 1 pattern dictionary')\
1190 .optional()\
1191 .field('Type')\
1192 .name('Type')\
1193 .type('name')\
1194 .comment('(Optional) The type of PDF object that this dictionary descr ibes; if present,\nmust be Pattern for a pattern dictionary.')\
1195 .done().done()\
1196 .required('NULL')\
1197 .field('PatternType')\
1198 .name('PatternType')\
1199 .type('integer')\
1200 .comment('(Required) A code identifying the type of pattern that this dictionary de-\nscribes; must be 1 for a tiling pattern.')\
1201 .done().done()\
1202 .required('NULL')\
1203 .field('PaintType')\
1204 .name('PaintType')\
1205 .type('integer')\
1206 .comment('(Required) A code that determines how the color of the patte rn cell is to be\nspecified:\n 1 Colored tiling pattern. The pattern\'s co ntent stream itself specifies the\n colors used to paint the pattern cel l. When the content stream begins\n execution, the current color is the one that was initially in effect in the\n pattern\'s parent content stre am. (This is similar to the definition of the\n pattern matrix; see Sect ion 4.6.1, "General Properties of Patterns.")\n 2 Uncolored tiling pattern . The pattern\'s content stream does not speci-\n fy any color informati on. Instead, the entire pattern cell is painted\n with a separately spec ified color each time the pattern is used. Essen-\n tially, the content stream describes a stencil through which the cur-')\
1207 .done().done()\
1208 .done()
1209
1210 pdfspec.addClass('Type2PatternDictionary', 'Dictionary', 'Entries in a type 2 pattern dictionary')\
1211 .optional()\
1212 .field('Type')\
1213 .name('Type')\
1214 .type('integer')\
1215 .comment('(Optional) The type of PDF object that this dictionary descr ibes; if present,\nmust be Pattern for a pattern dictionary.')\
1216 .done().done()\
1217 .required('NULL')\
1218 .field('PatternType')\
1219 .name('PatternType')\
1220 .type('integer')\
1221 .comment('(Required) A code identifying the type of pattern that this dictionary de-\nscribes; must be 2 for a shading pattern.')\
1222 .done().done()\
1223 .required('NULL')\
1224 .field('Shading')\
1225 .name('Shading')\
1226 .type('dictionary or stream')\
1227 .comment('(Required) A shading object (see below) defining the shading pattern\'s gradient\nfill. The contents of the dictionary consist of the entrie s in Table 4.25 on page\n234, plus those in one of Tables 4.26 to 4.31 on pages 237 to 253.')\
1228 .done().done()\
1229 .optional()\
1230 .field('Matrix')\
1231 .name('Matrix')\
1232 .type('array')\
1233 .comment('(Optional) An array of six numbers specifying the pattern ma trix (see Section\n4.6.1, "General Properties of Patterns"). Default value: the identity matrix\n[1 0 0 1 0 0].')\
1234 .done().done()\
1235 .optional()\
1236 .field('ExtGState')\
1237 .name('ExtGState')\
1238 .type('dictionary')\
1239 .comment('(Optional) A graphics state parameter dictionary (see Sectio n 4.3.4, "Graph-\nics State Parameter Dictionaries") containing graphics state p arameters to be\nput into effect temporarily while the shading pattern is painte d. Any parame-\nters that are not so specified are inherited from the graphics s tate that was in\neffect at the beginning of the content stream in which the pat tern is defined\nas a resource.')\
1240 .done().done()\
1241 .done()
1242
1243 pdfspec.addClass('ShadingDictionary', 'Dictionary', 'Entries common to all sha ding dictionaries')\
1244 .required('NULL')\
1245 .field('ShadingType')\
1246 .name('ShadingType')\
1247 .type('integer')\
1248 .comment('(Required) The shading type:\n 1 Function-based shadin g\n 2 Axial shading\n 3 Radial shading\n 4 Free-form Gouraud-s haded triangle mesh\n 5 Lattice-form Gouraud-shaded triangle mesh\n 6 Coons patch mesh\n 7 Tensor-product patch mesh')\
1249 .done().done()\
1250 .required('NULL')\
1251 .field('ColorSpace')\
1252 .name('ColorSpace')\
1253 .type('name or array')\
1254 .comment('(Required) The color space in which color values are express ed. This may be\nany device, CIE-based, or special color space except a Pattern space. See\n"Color Space: Special Considerations," below, for further informatio n.')\
1255 .done().done()\
1256 .optional()\
1257 .field('Background')\
1258 .name('Background')\
1259 .type('array')\
1260 .comment('(Optional) An array of color components appropriate to the c olor space,\nspecifying a single background color value. If present, this color is used be-\nfore any painting operation involving the shading, to fill those po rtions of the\narea to be painted that lie outside the bounds of the shading obj ect itself. In\nthe opaque imaging model, the effect is as if the painting opera tion were\nperformed twice: first with the background color and then again with the\nshading.\nNote: The background color is applied only when the shading is us ed as part of a\nshading pattern, not when it is painted directly with the sh op erator.')\
1261 .done().done()\
1262 .optional()\
1263 .field('BBox')\
1264 .name('BBox')\
1265 .type('rectangle')\
1266 .comment('(Optional) An array of four numbers giving the left, bottom, right, and top\ncoordinates, respectively, of the shading\'s bounding box. The coordinates are\ninterpreted in the shading\'s target coordinate space. If prese nt, this bounding\nbox is applied as a temporary clipping boundary when the shad ing is painted,\nin addition to the current clipping path and any other clipping boundaries in\neffect at that time.')\
1267 .done().done()\
1268 .optional()\
1269 .field('AntiAlias')\
1270 .name('AntiAlias')\
1271 .type('boolean')\
1272 .comment('(Optional) A flag indicating whether to filter the shading f unction to prevent\naliasing artifacts. The shading operators sample shading fun ctions at a rate\ndetermined by the resolution of the output device. Aliasing ca n occur if the\nfunction is not smooth-that is, if it has a high spatial frequen cy relative to\nthe sampling rate. Anti-aliasing can be computationally expensiv e and is usu-\nally unnecessary, since most shading functions are smooth enough, or are\nsampled at a high enough frequency, to avoid aliasing effects. Anti-ali asing\nmay not be implemented on some output devices, in which case this flag is \nignored. Default value: false.')\
1273 .done().done()\
1274 .done()
1275
1276 pdfspec.addClass('Type1ShadingDictionary', 'ShadingDictionary', 'Additional en tries specific to a type 1 shading dictionary')\
1277 .optional()\
1278 .field('Domain')\
1279 .name('Domain')\
1280 .type('array')\
1281 .comment('(Optional) An array of four numbers [ xmin xmax ymin ymax ] specifying the rec-\ntangular domain of coordinates over which the color functio n(s) are defined.\nDefault value: [0.0 1.0 0.0 1.0].')\
1282 .done().done()\
1283 .optional()\
1284 .field('Matrix')\
1285 .name('Matrix')\
1286 .type('array')\
1287 .comment('(Optional) An array of six numbers specifying a transformati on matrix mapping\nthe coordinate space specified by the Domain entry into the s hading\'s target co-\nordinate space. For example, to map the domain rectangle [ 0.0 1.0 0.0 1.0] to a\n1-inch square with lower-left corner at coordinates (100, 100) in default user\nspace, the Matrix value would be [72 0 0 72 100 100]. Def ault value: the iden-\ntity matrix [1 0 0 1 0 0].')\
1288 .done().done()\
1289 .required('NULL')\
1290 .field('Function')\
1291 .name('Function')\
1292 .type('function')\
1293 .comment('(Required) A 2-in, n-out function or an array of n 2-in, 1-o ut functions (where n\nis the number of color components in the shading dictiona ry\'s color space).\nEach function\'s domain must be a superset of that of the s hading dictionary. If\nthe value returned by the function for a given color comp onent is out of range, it\nwill be adjusted to the nearest valid value.')\
1294 .done().done()\
1295 .done()
1296
1297 pdfspec.addClass('Type2ShadingDictionary', 'ShadingDictionary', 'Additional en tries specific to a type 2 shading dictionary')\
1298 .required('NULL')\
1299 .field('Coords')\
1300 .name('Coords')\
1301 .type('array')\
1302 .comment('(Required) An array of four numbers [ x0 y0 x1 y1 ] specifyi ng the starting and\nending coordinates of the axis, expressed in the shading\'s target coordinate\nspace.')\
1303 .done().done()\
1304 .optional()\
1305 .field('Domain')\
1306 .name('Domain')\
1307 .type('array')\
1308 .comment('(Optional) An array of two numbers [ t0 t1 ] specifying the limiting values of a\nparametric variable t. The variable is considered to vary linearly between these\ntwo values as the color gradient varies between the star ting and ending points of\nthe axis. The variable t becomes the input argument t o the color function(s).\nDefault value: [0.0 1.0].')\
1309 .done().done()\
1310 .required('NULL')\
1311 .field('Function')\
1312 .name('Function')\
1313 .type('function')\
1314 .comment('(Required) A 1-in, n-out function or an array of n 1-in, 1-o ut functions (where n\nis the number of color components in the shading dictiona ry\'s color space). The\nfunction(s) are called with values of the parametric va riable t in the domain de-\nfined by the Domain entry. Each function\'s domain m ust be a superset of that of\nthe shading dictionary. If the value returned by t he function for a given color\ncomponent is out of range, it will be adjusted to the nearest valid value.')\
1315 .done().done()\
1316 .optional()\
1317 .field('Extend')\
1318 .name('Extend')\
1319 .type('array')\
1320 .comment('(Optional) An array of two boolean values specifying whether to extend the\nshading beyond the starting and ending points of the axis, respe ctively. Default\nvalue: [false false].')\
1321 .done().done()\
1322 .done()
1323
1324 pdfspec.addClass('Type3ShadingDictionary', 'ShadingDictionary', 'Additional en tries specific to a type 3 shading dictionary')\
1325 .required('NULL')\
1326 .field('Coords')\
1327 .name('Coords')\
1328 .type('array')\
1329 .comment('(Required) An array of six numbers [ x0 y0 r0 x1 y1 r1 ] spe cifying the centers and\nradii of the starting and ending circles, expressed in the shading\'s target coor-\ndinate space. The radii r0 and r1 must both be grea ter than or equal to 0. If one\nradius is 0, the corresponding circle is treated as a point; if both are 0, nothing is\npainted.')\
1330 .done().done()\
1331 .optional()\
1332 .field('Domain')\
1333 .name('Domain')\
1334 .type('array')\
1335 .comment('(Optional) An array of two numbers [ t0 t1 ] specifying the limiting values of a\nparametric variable t. The variable is considered to vary linearly between these\ntwo values as the color gradient varies between the star ting and ending circles.\nThe variable t becomes the input argument to the color function(s). Default\nvalue: [0.0 1.0].')\
1336 .done().done()\
1337 .required('NULL')\
1338 .field('Function')\
1339 .name('Function')\
1340 .type('function')\
1341 .comment('(Required) A 1-in, n-out function or an array of n 1-in, 1-o ut functions (where n\nis the number of color components in the shading dictiona ry\'s color space). The\nfunction(s) are called with values of the parametric va riable t in the domain de-\nfined by the shading dictionary\'s Domain entry. Eac h function\'s domain must be\na superset of that of the shading dictionary. If t he value returned by the function\nfor a given color component is out of range, it will be adjusted to the nearest\nvalid value.')\
1342 .done().done()\
1343 .optional()\
1344 .field('Extend')\
1345 .name('Extend')\
1346 .type('array')\
1347 .comment('(Optional) An array of two boolean values specifying whether to extend the\nshading beyond the starting and ending circles, respectively. De fault value:\n[false false].')\
1348 .done().done()\
1349 .done()
1350
1351 pdfspec.addClass('Type4ShadingDictionary', 'ShadingDictionary', 'Additional en tries specific to a type 4 shading dictionary')\
1352 .required('NULL')\
1353 .field('BitsPerCoordinate')\
1354 .name('BitsPerCoordinate')\
1355 .type('integer')\
1356 .comment('(Required) The number of bits used to represent each vertex coordinate.\nValid values are 1, 2, 4, 8, 12, 16, 24, and 32.')\
1357 .done().done()\
1358 .required('NULL')\
1359 .field('BitsPerComponent')\
1360 .name('BitsPerComponent')\
1361 .type('integer')\
1362 .comment('(Required) The number of bits used to represent each color c omponent.\nValid values are 1, 2, 4, 8, 12, and 16.')\
1363 .done().done()\
1364 .required('NULL')\
1365 .field('BitsPerFlag')\
1366 .name('BitsPerFlag')\
1367 .type('integer')\
1368 .comment('(Required) The number of bits used to represent the edge fla g for each ver-\ntex (see below). Valid values of BitsPerFlag are 2, 4, and 8, b ut only the\nleast significant 2 bits in each flag value are used. Valid values for the edge\nflag itself are 0, 1, and 2.')\
1369 .done().done()\
1370 .required('NULL')\
1371 .field('Decode')\
1372 .name('Decode')\
1373 .type('rectangle')\
1374 .comment('(Required) An array of numbers specifying how to map vertex coordinates\nand color components into the appropriate ranges of values. The de- \ncoding method is similar to that used in image dictionaries (see "Decode\nArra ys" on page 271). The ranges are specified as follows:\n [ xmin xmax ymin yma x c1,min c1,max ... cn,min cn,max ]\nNote that only one pair of c values should be specified if a Function entry\nis present.')\
1375 .done().done()\
1376 .optional()\
1377 .field('Function')\
1378 .name('Function')\
1379 .type('function')\
1380 .comment('(Optional) A 1-in, n-out function or an array of n 1-in, 1-o ut functions\n(where n is the number of color components in the shading dictiona ry\'s\ncolor space). If this entry is present, the color data for each vertex mu st be\nspecified by a single parametric variable rather than by n separate color \ncomponents; the designated function(s) will be called with each interpo-\nlate d value of the parametric variable to determine the actual color at each\npoint. Each input value will be forced into the range interval specified for\nthe corr esponding color component in the shading dictionary\'s Decode\narray. Each funct ion\'s domain must be a superset of that interval. If the\nvalue returned by the function for a given color component is out of\nrange, it will be adjusted to t he nearest valid value.\nThis entry may not be used with an Indexed color space. ')\
1381 .done().done()\
1382 .done()
1383
1384 pdfspec.addClass('Type5ShadingDictionary', 'ShadingDictionary', 'Additional en tries specific to a type 5 shading dictionary')\
1385 .required('NULL')\
1386 .field('BitsPerCoordinate')\
1387 .name('BitsPerCoordinate')\
1388 .type('integer')\
1389 .comment('(Required) The number of bits used to represent each vertex coordinate.\nValid values are 1, 2, 4, 8, 12, 16, 24, and 32.')\
1390 .done().done()\
1391 .required('NULL')\
1392 .field('BitsPerComponent')\
1393 .name('BitsPerComponent')\
1394 .type('integer')\
1395 .comment('(Required) The number of bits used to represent each color c omponent.\nValid values are 1, 2, 4, 8, 12, and 16.')\
1396 .done().done()\
1397 .required('NULL')\
1398 .field('VerticesPerRow')\
1399 .name('VerticesPerRow')\
1400 .type('integer')\
1401 .comment('(Required) The number of vertices in each row of the lattice ; the value\nmust be greater than or equal to 2. The number of rows need not be\ nspecified.')\
1402 .done().done()\
1403 .required('NULL')\
1404 .field('Decode')\
1405 .name('Decode')\
1406 .type('array')\
1407 .comment('(Required) An array of numbers specifying how to map vertex coordinates\nand color components into the appropriate ranges of values. The de- \ncoding method is similar to that used in image dictionaries (see "Decode\nArra ys" on page 271). The ranges are specified as follows:\n [ xmin xmax ymin yma x c1,min c1,max ... cn,min cn,max ]\nNote that only one pair of c values should be specified if a Function entry\nis present.')\
1408 .done().done()\
1409 .optional()\
1410 .field('Function')\
1411 .name('Function')\
1412 .type('function')\
1413 .comment('(Optional) A 1-in, n-out function or an array of n 1-in, 1-o ut functions\n(where n is the number of color components in the shading dictiona ry\'s\ncolor space). If this entry is present, the color data for each vertex mu st be\nspecified by a single parametric variable rather than by n separate color \ncomponents; the designated function(s) will be called with each interpo-\nlate d value of the parametric variable to determine the actual color at each\npoint. Each input value will be forced into the range interval specified for\nthe corr esponding color component in the shading dictionary\'s Decode\narray. Each funct ion\'s domain must be a superset of that interval. If the\nvalue returned by the function for a given color component is out of\nrange, it will be adjusted to t he nearest valid value.\nThis entry may not be used with an Indexed color space. ')\
1414 .done().done()\
1415 .done()
1416
1417 pdfspec.addClass('Type6ShadingDictionary', 'ShadingDictionary', 'Additional en tries specific to a type 6 shading dictionary')\
1418 .required('NULL')\
1419 .field('BitsPerCoordinate')\
1420 .name('BitsPerCoordinate')\
1421 .type('integer')\
1422 .comment('(Required) The number of bits used to represent each geometr ic coordi-\nnate. Valid values are 1, 2, 4, 8, 12, 16, 24, and 32.')\
1423 .done().done()\
1424 .required('NULL')\
1425 .field('BitsPerComponent')\
1426 .name('BitsPerComponent')\
1427 .type('integer')\
1428 .comment('(Required) The number of bits used to represent each color c omponent.\nValid values are 1, 2, 4, 8, 12, and 16.')\
1429 .done().done()\
1430 .required('NULL')\
1431 .field('BitsPerFlag')\
1432 .name('BitsPerFlag')\
1433 .type('integer')\
1434 .comment('(Required) The number of bits used to represent the edge fla g for each\npatch (see below). Valid values of BitsPerFlag are 2, 4, and 8, but only the\nleast significant 2 bits in each flag value are used. Valid values for the edge\nflag itself are 0, 1, 2, and 3.')\
1435 .done().done()\
1436 .required('NULL')\
1437 .field('Decode')\
1438 .name('Decode')\
1439 .type('array')\
1440 .comment('(Required) An array of numbers specifying how to map coordin ates and\ncolor components into the appropriate ranges of values. The decoding\n method is similar to that used in image dictionaries (see "Decode Arrays"\non pa ge 271). The ranges are specified as follows:\n [ xmin xmax ymin ymax c1,min c1,max ... cn,min cn,max ]\nNote that only one pair of c values should be specif ied if a Function entry\nis present.')\
1441 .done().done()\
1442 .optional()\
1443 .field('Function')\
1444 .name('Function')\
1445 .type('function')\
1446 .comment('(Optional) A 1-in, n-out function or an array of n 1-in, 1-o ut functions\n(where n is the number of color components in the shading dictiona ry\'s\ncolor space). If this entry is present, the color data for each vertex mu st be\nspecified by a single parametric variable rather than by n separate color \ncomponents; the designated function(s) will be called with each interpo-\nlate d value of the parametric variable to determine the actual color at each\npoint. Each input value will be forced into the range interval specified for\nthe corr esponding color component in the shading dictionary\'s Decode\narray. Each funct ion\'s domain must be a superset of that interval. If the\nvalue returned by the function for a given color component is out of\nrange, it will be adjusted to t he nearest valid value.\nThis entry may not be used with an Indexed color space. ')\
1447 .done().done()\
1448 .done()
1449
1450 pdfspec.addClass('ImageDictionary', 'XObjectDictionary', 'Additional entries s pecific to an image dictionary')\
1451 .optional()\
1452 .field('Type')\
1453 .name('Type')\
1454 .type('name')\
1455 .comment('(Optional) The type of PDF object that this dictionary descr ibes; if\npresent, must be XObject for an image XObject.')\
1456 .done().done()\
1457 .required('NULL')\
1458 .field('Subtype')\
1459 .name('Subtype')\
1460 .type('name')\
1461 .comment('(Required) The type of XObject that this dictionary describe s; must be\nImage for an image XObject.')\
1462 .must([datatypes.PdfName('Image')])\
1463 .done().done()\
1464 .required('NULL')\
1465 .field('Width')\
1466 .name('Width')\
1467 .type('integer')\
1468 .comment('(Required) The width of the image, in samples.')\
1469 .done().done()\
1470 .required('NULL')\
1471 .field('Height')\
1472 .name('Height')\
1473 .type('integer')\
1474 .comment('(Required) The height of the image, in samples.')\
1475 .done().done()\
1476 .optional()\
1477 .field('ColorSpace')\
1478 .name('ColorSpace')\
1479 .type('name or array')\
1480 .comment('(Required except for image masks; not allowed for image mask s) The color\nspace in which image samples are specified. This may be any type o f color\nspace except Pattern.')\
1481 .done().done()\
1482 .optional()\
1483 .field('BitsPerComponent')\
1484 .name('BitsPerComponent')\
1485 .type('integer')\
1486 .comment('(Required except for image masks; optional for image masks) The number of\nbits used to represent each color component. Only a single value may be\nspecified; the number of bits is the same for all color components. Vali d\nvalues are 1, 2, 4, and 8. If ImageMask is true, this entry is optional, and if\nspecified, its value must be 1.\nIf the image stream uses a filter, the valu e of BitsPerComponent must be\nconsistent with the size of the data samples that the filter delivers. In par-\nticular, a CCITTFaxDecode or JBIG2Decode filter a lways delivers 1-bit sam-\nples, a RunLengthDecode or DCTDecode filter delivers 8-bit samples, and\nan LZWDecode or FlateDecode filter delivers samples of a spe cified size if\na predictor function is used.')\
1487 .done().done()\
1488 .optional()\
1489 .field('Intent')\
1490 .name('Intent')\
1491 .type('name')\
1492 .comment('(Optional; PDF 1.1) The name of a color rendering intent to be used in\nrendering the image (see "Rendering Intents" on page 197). Default v alue:\nthe current rendering intent in the graphics state.')\
1493 .done().done()\
1494 .optional()\
1495 .field('ImageMask')\
1496 .name('ImageMask')\
1497 .type('boolean')\
1498 .comment('(Optional) A flag indicating whether the image is to be trea ted as an image\nmask (see Section 4.8.5, "Masked Images"). If this flag is true , the value of\nBitsPerComponent must be 1 and Mask and ColorSpace should not be \nspecified; unmasked areas will be painted using the current nonstroking\ncolor . Default value: false.')\
1499 .done().done()\
1500 .optional()\
1501 .field('Mask')\
1502 .name('Mask')\
1503 .type('stream or array')\
1504 .comment('(Optional except for image masks; not allowed for image mask s; PDF 1.3) An\nimage XObject defining an image mask to be applied to this image (see\n"Explicit Masking" on page 277), or an array specifying a range of colors \nto be applied to it as a color key mask (see "Color Key Masking" on page\n277) . If ImageMask is true, this entry must not be present. (See\nimplementation not e 35 in Appendix H.)')\
1505 .done().done()\
1506 .optional()\
1507 .field('SMask')\
1508 .name('SMask')\
1509 .type('stream')\
1510 .comment('(Optional; PDF 1.4) A subsidiary image XObject defining a so ft-mask\nimage (see "Soft-Mask Images" on page 447) to be used as a source of\nm ask shape or mask opacity values in the transparent imaging model. The\nalpha so urce parameter in the graphics state determines whether the mask\nvalues are int erpreted as shape or opacity.\nIf present, this entry overrides the current soft mask in the graphics state,\nas well as the image\'s Mask entry, if any. (Howev er, the other transparency-\nrelated graphics state parameters-blend mode and al pha constant-\nremain in effect.) If SMask is absent, the image has no associate d soft mask\n(although the current soft mask in the graphics state may still app ly).')\
1511 .done().done()\
1512 .optional()\
1513 .field('Decode')\
1514 .name('Decode')\
1515 .type('array')\
1516 .comment('(Optional) An array of numbers describing how to map image s amples\ninto the range of values appropriate for the image\'s color space (see\n "Decode Arrays" on page 271). If ImageMask is true, the array must be\neither [0 1] or [1 0]; otherwise, its length must be twice the number of\ncolor component s required by ColorSpace. Default value: see "Decode\nArrays" on page 271.')\
1517 .done().done()\
1518 .optional()\
1519 .field('Interpolate')\
1520 .name('Interpolate')\
1521 .type('boolean')\
1522 .comment('(Optional) A flag indicating whether image interpolation is to be per-\nformed (see "Image Interpolation" on page 273). Default value: false .')\
1523 .done().done()\
1524 .optional()\
1525 .field('Alternates')\
1526 .name('Alternates')\
1527 .type('array')\
1528 .comment('(Optional; PDF 1.3) An array of alternate image dictionaries for this image\n(see "Alternate Images" on page 273). The order of elements wit hin the\narray has no significance. This entry may not be present in an image\nX Object that is itself an alternate image.')\
1529 .done().done()\
1530 .optional()\
1531 .field('Name')\
1532 .name('Name')\
1533 .type('name')\
1534 .comment('(Required in PDF 1.0; optional otherwise) The name by which this image\nXObject is referenced in the XObject subdictionary of the current re source\ndictionary (see Section 3.7.2, "Resource Dictionaries").\nNote: This ent ry is obsolescent and its use is no longer recommended. (See\nimplementation not e 36 in Appendix H.)')\
1535 .done().done()\
1536 .optional()\
1537 .field('StructParent')\
1538 .name('StructParent')\
1539 .type('integer')\
1540 .comment('(Required if the image is a structural content item; PDF 1.3 ) The integer key\nof the image\'s entry in the structural parent tree (see "Fin ding Structure\nElements from Content Items" on page 600).')\
1541 .done().done()\
1542 .optional()\
1543 .field('ID')\
1544 .name('ID')\
1545 .type('string')\
1546 .comment('(Optional; PDF 1.3; indirect reference preferred) The digita l identifier of the\nimage\'s parent Web Capture content set (see Section 9.9.5, "Object At-\ntributes Related to Web Capture").')\
1547 .done().done()\
1548 .optional()\
1549 .field('OPI')\
1550 .name('OPI')\
1551 .type('dictionary')\
1552 .comment('(Optional; PDF 1.2) An OPI version dictionary for the image (see Section\n9.10.6, "Open Prepress Interface (OPI)"). If ImageMask is true, th is entry\nis ignored.')\
1553 .done().done()\
1554 .optional()\
1555 .field('Metadata')\
1556 .name('Metadata')\
1557 .type('stream')\
1558 .comment('(Optional; PDF 1.4) A metadata stream containing metadata fo r the image\n(see Section 9.2.2, "Metadata Streams").')\
1559 .done().done()\
1560 .done()
1561
1562 pdfspec.addClass('AlternateImageDictionary', 'Dictionary', 'Entries in an alte rnate image dictionary')\
1563 .required('NULL')\
1564 .field('Image')\
1565 .name('Image')\
1566 .type('stream')\
1567 .comment('(Required) The image XObject for the alternate image.')\
1568 .done().done()\
1569 .optional()\
1570 .field('DefaultForPrinting')\
1571 .name('DefaultForPrinting')\
1572 .type('boolean')\
1573 .comment('(Optional) A flag indicating whether this alternate image is the default ver-\nsion to be used for printing. At most one alternate for a giv en base image may\nbe so designated. If no alternate has this entry set to true, the base image itself\nis used for printing.')\
1574 .done().done()\
1575 .done()
1576
1577 pdfspec.addClass('Type1FormDictionary', 'XObjectDictionary', 'Additional entri es specific to a type 1 form dictionary')\
1578 .optional()\
1579 .field('Type')\
1580 .name('Type')\
1581 .type('name')\
1582 .comment('(Optional) The type of PDF object that this dictionary descr ibes; if present,\nmust be XObject for a form XObject.')\
1583 .done().done()\
1584 .required('NULL')\
1585 .field('Subtype')\
1586 .name('Subtype')\
1587 .type('name')\
1588 .comment('(Required) The type of XObject that this dictionary describe s; must be Form\nfor a form XObject.')\
1589 .must([datatypes.PdfName('Form')])\
1590 .done().done()\
1591 .optional()\
1592 .field('FormType')\
1593 .name('FormType')\
1594 .type('integer')\
1595 .comment('(Optional) A code identifying the type of form XObject that this dictionary\ndescribes. The only valid value defined at the time of publicat ion is 1. Default\nvalue: 1.')\
1596 .done().done()\
1597 .optional()\
1598 .field('Name')\
1599 .name('Name')\
1600 .type('name')\
1601 .comment('(Required in PDF 1.0; optional otherwise) The name by which this form\nXObject is referenced in the XObject subdictionary of the current res ource\ndictionary (see Section 3.7.2, "Resource Dictionaries").\nNote: This entr y is obsolescent and its use is no longer recommended. (See\nimplementation note 38 in Appendix H.)')\
1602 .done().done()\
1603 .optional()\
1604 .field('LastModified')\
1605 .name('LastModified')\
1606 .type('date')\
1607 .comment('(Required if PieceInfo is present; optional otherwise; PDF 1 .3) The date and\ntime (see Section 3.8.2, "Dates") when the form XObject\'s con tents were\nmost recently modified. If a page-piece dictionary (PieceInfo) is pr esent, the\nmodification date is used to ascertain which of the application data diction-\naries it contains correspond to the current content of the form (see Section\n9.4, "Page-Piece Dictionaries").')\
1608 .done().done()\
1609 .required('NULL')\
1610 .field('BBox')\
1611 .name('BBox')\
1612 .type('rectangle')\
1613 .comment('(Required) An array of four numbers in the form coordinate s ystem (see\nbelow), giving the coordinates of the left, bottom, right, and top e dges,\nrespectively, of the form XObject\'s bounding box. These boundaries are u sed\nto clip the form XObject and to determine its size for caching.')\
1614 .done().done()\
1615 .optional()\
1616 .field('Matrix')\
1617 .name('Matrix')\
1618 .type('matrix')\
1619 .comment('(Optional) An array of six numbers specifying the form matri x, which maps\nform space into user space (see Section 4.2.3, "Transformation Ma trices").\nDefault value: the identity matrix [1 0 0 1 0 0].')\
1620 .done().done()\
1621 .optional()\
1622 .field('Resources')\
1623 .name('Resources')\
1624 .type('ResourceDictionary')\
1625 .comment('(Optional but strongly recommended; PDF 1.2) A dictionary sp ecifying any\nresources (such as fonts and images) required by the form XObject (see Sec-\ntion 3.7, "Content Streams and Resources").\nIn PDF 1.1 and earlier, all named resources used in the form XObject must be\nincluded in the resource d ictionary of each page object on which the form\nXObject appears, whether or not they also appear in the resource dictionary\nof the form XObject itself. It can be useful to specify these resources in the\nform XObject\'s own resource dicti onary as well, in order to determine which\nresources are used inside the form X Object. If a resource is included in both\ndictionaries, it should have the same name in both locations.\n In PDF 1.2 and later versions, form XObjects can be independent of the\n content streams in which they appear, and this is st rongly recommended\n although not required. In an independent form XObject, the resource dic-\n tionary of the form XObject is required and contains all named resources\n used by the form XObject. These resources are not "promot ed" to the outer\n content stream\'s resource dictionary, although that stre am\'s resource diction-\n ary will refer to the form XObject itself.')\
1626 .done().done()\
1627 .optional()\
1628 .field('Group')\
1629 .name('Group')\
1630 .type('dictionary')\
1631 .comment('(Optional; PDF 1.4) A group attributes dictionary indicating that the contents\nof the form XObject are to be treated as a group and specify ing the attributes\nof that group (see Section 4.9.2, "Group XObjects").\nNote: If a Ref entry (see below) is present, the group attributes also apply to the\ne xternal page imported by that entry. This allows such an imported page to be\ntr eated as a group without further modification.')\
1632 .done().done()\
1633 .optional()\
1634 .field('Ref')\
1635 .name('Ref')\
1636 .type('dictionary')\
1637 .comment('(Optional; PDF 1.4) A reference dictionary identifying a pag e to be imported\nfrom another PDF file, and for which the form XObject serves a s a proxy (see\nSection 4.9.3, "Reference XObjects").')\
1638 .done().done()\
1639 .optional()\
1640 .field('Metadata')\
1641 .name('Metadata')\
1642 .type('stream')\
1643 .comment('(Optional; PDF 1.4) A metadata stream containing metadata fo r the form\nXObject (see Section 9.2.2, "Metadata Streams").')\
1644 .done().done()\
1645 .optional()\
1646 .field('PieceInfo')\
1647 .name('PieceInfo')\
1648 .type('dictionary')\
1649 .comment('(Optional; PDF 1.3) A page-piece dictionary associated with the form\nXObject (see Section 9.4, "Page-Piece Dictionaries").')\
1650 .done().done()\
1651 .optional()\
1652 .field('StructParent')\
1653 .name('StructParent')\
1654 .type('integer')\
1655 .comment('(Required if the form XObject is a structural content item; PDF 1.3) The integer\nkey of the form XObject\'s entry in the structural parent tree (see "Finding\nStructure Elements from Content Items" on page 600).')\
1656 .done().done()\
1657 .optional()\
1658 .field('StructParents')\
1659 .name('StructParents')\
1660 .type('integer')\
1661 .comment('(Required if the form XObject contains marked-content sequen ces that are struc-\ntural content items; PDF 1.3) The integer key of the form X Object\'s entry in\nthe structural parent tree (see "Finding Structure Elements from Content\nItems" on page 600).\nNote: At most one of the entries StructParen t or StructParents may be present. A\nform XObject can be either a content item in its entirety or a container for\nmarked-content sequences that are content it ems, but not both.')\
1662 .done().done()\
1663 .optional()\
1664 .field('OPI')\
1665 .name('OPI')\
1666 .type('dictionary')\
1667 .comment('(Optional; PDF 1.2) An OPI version dictionary for the form X Object (see\nSection 9.10.6, "Open Prepress Interface (OPI)").')\
1668 .done().done()\
1669 .done()
1670
1671 pdfspec.addClass('GroupAttributesDictionary', 'Dictionary', 'Entries common to all group attributes dictionaries')\
1672 .optional()\
1673 .field('Type')\
1674 .name('Type')\
1675 .type('name')\
1676 .comment('(Optional) The type of PDF object that this dictionary descr ibes; if present, must\nbe Group for a group attributes dictionary.')\
1677 .done().done()\
1678 .required('NULL')\
1679 .field('S')\
1680 .name('S')\
1681 .type('name')\
1682 .comment('(Required) The group subtype, which identifies the type of g roup whose at-\ntributes this dictionary describes and determines the format and meaning of the\ndictionary\'s remaining entries. The only group subtype defined in PDF 1.4 is\nTransparency; see Section 7.5.5, "Transparency Group XObjects," for the re-\nmaining contents of this type of dictionary. Other group subtypes m ay be added\nin the future.')\
1683 .done().done()\
1684 .done()
1685
1686 pdfspec.addClass('ReferenceDictionary', 'Dictionary', 'Entries in a reference dictionary')\
1687 .required('NULL')\
1688 .field('F')\
1689 .name('F')\
1690 .type('file specification')\
1691 .comment('(Required) The file containing the target document.')\
1692 .done().done()\
1693 .required('NULL')\
1694 .field('Page')\
1695 .name('Page')\
1696 .type('integer or text string')\
1697 .comment('(Required) A page index or page label (see Section 8.3.1, "P age Labels")\nidentifying the page of the target document containing the content to be\nimported. Note that the reference is a weak one and can be inadvertently in-\nvalidated if the referenced page is changed or replaced in the target docu ment\nafter the reference is created.')\
1698 .done().done()\
1699 .optional()\
1700 .field('ID')\
1701 .name('ID')\
1702 .type('array')\
1703 .comment('(Optional) An array of two strings constituting a file ident ifier (see Section 9.3,\n"File Identifiers") for the file containing the target document. The use of this\nentry improves a viewer application\'s chances of fin ding the intended file and\nallows it to warn the user if the file has changed s ince the reference was created.')\
1704 .done().done()\
1705 .done()
1706
1707 pdfspec.addClass('PSXobjectDictionary', 'Dictionary', 'Additional entries spec ific to a PostScript XObject dictionary')\
1708 .optional()\
1709 .field('Type')\
1710 .name('Type')\
1711 .type('name')\
1712 .comment('(Optional) The type of PDF object that this dictionary descr ibes; if present, must be\nXObject for a PostScript XObject.')\
1713 .done().done()\
1714 .required('NULL')\
1715 .field('Subtype')\
1716 .name('Subtype')\
1717 .type('name')\
1718 .comment('(Required) The type of XObject that this dictionary describe s; must be PS for a\nPostScript XObject.')\
1719 .done().done()\
1720 .optional()\
1721 .field('Level1')\
1722 .name('Level1')\
1723 .type('stream')\
1724 .comment('(Optional) A stream whose contents are to be used in place o f the PostScript\nXObject\'s stream when the target PostScript interpreter is kn own to support only\nLanguageLevel 1.')\
1725 .done().done()\
1726 .done()
1727
1728 pdfspec.addClass('Type1FontDictionary', 'FontDictionary', 'Entries in a Type 1 font dictionary')\
1729 .required('NULL')\
1730 .field('Type')\
1731 .name('Type')\
1732 .type('name')\
1733 .comment('(Required) The type of PDF object that this dictionary descr ibes; must be\nFont for a font dictionary.')\
1734 .done().done()\
1735 .required('NULL')\
1736 .field('Subtype')\
1737 .name('Subtype')\
1738 .type('name')\
1739 .comment('(Required) The type of font; must be Type1 for a Type 1 font .')\
1740 .must([datatypes.PdfName('Type1')])\
1741 .done().done()\
1742 .optional()\
1743 .field('Name')\
1744 .name('Name')\
1745 .type('name')\
1746 .comment('(Required in PDF 1.0; optional otherwise) The name by which this font is ref-\nerenced in the Font subdictionary of the current resource dic tionary.\nNote: This entry is obsolescent and its use is no longer recommended. (See\nimplementation note 42 in Appendix H.)')\
1747 .done().done()\
1748 .required('NULL')\
1749 .field('BaseFont')\
1750 .name('BaseFont')\
1751 .type('name')\
1752 .comment('(Required) The PostScript name of the font. For Type 1 fonts , this is usually\nthe value of the FontName entry in the font program; for more information,\nsee Section 5.2 of the PostScript Language Reference, Third Editi on. The Post-\nScript name of the font can be used to find the font\'s definitio n in the viewer\napplication or its environment. It is also the name that will b e used when\nprinting to a PostScript output device.')\
1753 .done().done()\
1754 .optional()\
1755 .field('FirstChar')\
1756 .name('FirstChar')\
1757 .type('integer')\
1758 .comment('(Required except for the standard 14 fonts) The first charac ter code defined in\nthe font\'s Widths array.')\
1759 .done().done()\
1760 .optional()\
1761 .field('LastChar')\
1762 .name('LastChar')\
1763 .type('integer')\
1764 .comment('(Required except for the standard 14 fonts) The last charact er code defined in\nthe font\'s Widths array.')\
1765 .done().done()\
1766 .optional()\
1767 .field('Widths')\
1768 .name('Widths')\
1769 .type('array')\
1770 .comment('(Required except for the standard 14 fonts; indirect referen ce preferred) An array\nof (LastChar - FirstChar + 1) widths, each element being the glyph width for\nthe character whose code is FirstChar plus the array index . For character\ncodes outside the range FirstChar to LastChar, the value of Mis singWidth from\nthe FontDescriptor entry for this font is used. The glyph widths are measured\nin units in which 1000 units corresponds to 1 unit in text space. These widths\nmust be consistent with the actual widths given in the font progr am itself.\n(See implementation note 43 in Appendix H.) For more information on\ nglyph widths and other glyph metrics, see Section 5.1.3, "Glyph Positioning\nan d Metrics."')\
1771 .done().done()\
1772 .optional()\
1773 .field('FontDescriptor')\
1774 .name('FontDescriptor')\
1775 .type('FontDescriptorDictionary')\
1776 .comment('(Required except for the standard 14 fonts; must be an indir ect reference) A font\ndescriptor describing the font\'s metrics other than its glyph widths (see Sec-\ntion 5.7, "Font Descriptors").\n Note: For the standar d 14 fonts, the entries FirstChar, LastChar, Widths, and\n FontDescriptor must either all be present or all absent. Ordinarily, they are ab-\n sent; specify ing them enables a standard font to be overridden (see "Standard\n Type 1 Font s," below).')\
1777 .done().done()\
1778 .optional()\
1779 .field('Encoding')\
1780 .name('Encoding')\
1781 .type('name or dictionary')\
1782 .comment('(Optional) A specification of the font\'s character encoding , if different from\nits built-in encoding. The value of Encoding may be either the name of a pre-\ndefined encoding (MacRomanEncoding, MacExpertEncoding, or Wi nAnsi-\nEncoding, as described in Appendix D) or an encoding dictionary that\nsp ecifies differences from the font\'s built-in encoding or from a specified pre-\ ndefined encoding (see Section 5.5.5, "Character Encoding").')\
1783 .done().done()\
1784 .optional()\
1785 .field('ToUnicode')\
1786 .name('ToUnicode')\
1787 .type('stream')\
1788 .comment('(Optional; PDF 1.2) A stream containing a CMap file that map s character\ncodes to Unicode values (see Section 5.9, "ToUnicode CMaps").')\
1789 .done().done()\
1790 .done()
1791
1792 pdfspec.addClass('Type3FontDictionary', 'Type1FontDictionary', 'Entries in a T ype 3 font dictionary')\
1793 .required('NULL')\
1794 .field('Type')\
1795 .name('Type')\
1796 .type('name')\
1797 .comment('(Required) The type of PDF object that this dictionary descr ibes; must be\nFont for a font dictionary.')\
1798 .done().done()\
1799 .required('NULL')\
1800 .field('Subtype')\
1801 .name('Subtype')\
1802 .type('name')\
1803 .comment('(Required) The type of font; must be Type3 for a Type 3 font .')\
1804 .must([datatypes.PdfName('Type3')])\
1805 .done().done()\
1806 .optional()\
1807 .field('Name')\
1808 .name('Name')\
1809 .type('name')\
1810 .comment('(Required in PDF 1.0; optional otherwise) See Table 5.8 on p age 317.')\
1811 .done().done()\
1812 .required('NULL')\
1813 .field('FontBBox')\
1814 .name('FontBBox')\
1815 .type('rectangle')\
1816 .comment('(Required) A rectangle (see Section 3.8.3, "Rectangles"), ex pressed in the\nglyph coordinate system, specifying the font bounding box. This is the small-\nest rectangle enclosing the shape that would result if all of the glyphs of the\nfont were placed with their origins coincident and then filled.\ nIf all four elements of the rectangle are zero, no assumptions are made based\n on the font bounding box. If any element is nonzero, it is essential that the\nf ont bounding box be accurate; if any glyph\'s marks fall outside this bound-\nin g box, incorrect behavior may result.')\
1817 .done().done()\
1818 .required('NULL')\
1819 .field('FontMatrix')\
1820 .name('FontMatrix')\
1821 .type('matrix')\
1822 .comment('(Required) An array of six numbers specifying the font matri x, mapping\nglyph space to text space (see Section 5.1.3, "Glyph Positioning and \nMetrics"). A common practice is to define glyphs in terms of a 1000-unit\nglyp h coordinate system, in which case the font matrix is\n [0.001 0 0 0.001 0 0].')\
1823 .done().done()\
1824 .required('NULL')\
1825 .field('CharProcs')\
1826 .name('CharProcs')\
1827 .type('dictionary')\
1828 .comment('(Required) A dictionary in which each key is a character nam e and the value\nassociated with that key is a content stream that constructs an d paints the\nglyph for that character. The stream must include as its first ope rator either\nd0 or d1. This is followed by operators describing one or more gra phics\nobjects, which may include path, text, or image objects. See below for mo re\ndetails about Type 3 glyph descriptions.')\
1829 .done().done()\
1830 .required('NULL')\
1831 .field('Encoding')\
1832 .name('Encoding')\
1833 .type('name or EncodingDictionary')\
1834 .comment('(Required) An encoding dictionary whose Differences array sp ecifies the\ncomplete character encoding for this font (see Section 5.5.5, "Char acter\nEncoding"; also see implementation note 46 in Appendix H).')\
1835 .done().done()\
1836 .required('NULL')\
1837 .field('FirstChar')\
1838 .name('FirstChar')\
1839 .type('integer')\
1840 .comment('(Required) The first character code defined in the font\'s W idths array.')\
1841 .done().done()\
1842 .required('NULL')\
1843 .field('LastChar')\
1844 .name('LastChar')\
1845 .type('integer')\
1846 .comment('(Required) The last character code defined in the font\'s Wi dths array.')\
1847 .done().done()\
1848 .optional()\
1849 .field('Widths')\
1850 .name('Widths')\
1851 .type('array')\
1852 .comment('(Required; indirect reference preferred) An array of (LastCh ar - FirstChar + 1)\nwidths, each element being the glyph width for the characte r whose code is\nFirstChar plus the array index. For character codes outside the range FirstChar\nto LastChar, the width is 0. These widths are interpreted in g lyph space as\nspecified by FontMatrix (unlike the widths of a Type 1 font, whic h are in\nthousandths of a unit of text space).\nNote: If FontMatrix specifies a rotation, only the horizontal component of the\ntransformed width is used. That is, the resulting displacement is always horizon-\ntal in text space, as is the case for all simple fonts.')\
1853 .done().done()\
1854 .optional()\
1855 .field('Resources')\
1856 .name('Resources')\
1857 .type('dictionary')\
1858 .comment('(Optional but strongly recommended; PDF 1.2) A list of the n amed resources,\nsuch as fonts and images, required by the glyph descriptions in this font (see\nSection 3.7.2, "Resource Dictionaries"). If any glyph descripti ons refer to\nnamed resources but this dictionary is absent, the names are looke d up in the\nresource dictionary of the page on which the font is used. (See imp lementa-\ntion note 47 in Appendix H.)')\
1859 .done().done()\
1860 .optional()\
1861 .field('ToUnicode')\
1862 .name('ToUnicode')\
1863 .type('stream')\
1864 .comment('(Optional; PDF 1.2) A stream containing a CMap file that map s character\ncodes to Unicode values (see Section 5.9, "ToUnicode CMaps").')\
1865 .done().done()\
1866 .done()
1867
1868 pdfspec.addClass('EncodingDictionary', 'Dictionary', 'Entries in an encoding d ictionary')\
1869 .optional()\
1870 .field('Type')\
1871 .name('Type')\
1872 .type('name')\
1873 .comment('(Optional) The type of PDF object that this dictionary descr ibes; if present, must\nbe Encoding for an encoding dictionary.')\
1874 .done().done()\
1875 .optional()\
1876 .field('BaseEncoding')\
1877 .name('BaseEncoding')\
1878 .type('name')\
1879 .comment('(Optional) The base encoding-that is, the encoding from whic h the Differences\nentry (if present) describes differences-specified as the nam e of a predefined\nencoding MacRomanEncoding, MacExpertEncoding, or WinAnsiEncod ing (see\nAppendix D).\nIf this entry is absent, the Differences entry describes differences from an im-\nplicit base encoding. For a font program that is embed ded in the PDF file, the\nimplicit base encoding is the font program\'s built-in encoding, as described\nabove and further elaborated in the sections on specifi c font types below. Other-\nwise, for a nonsymbolic font, it is StandardEncoding , and for a symbolic font, it\nis the font\'s built-in encoding.')\
1880 .done().done()\
1881 .optional()\
1882 .field('Differences')\
1883 .name('Differences')\
1884 .type('array')\
1885 .comment('(Optional; not recommended with TrueType fonts) An array des cribing the differ-\nences from the encoding specified by BaseEncoding or, if Ba seEncoding is ab-\nsent, from an implicit base encoding. The Differences array i s described above.\n The value of the Differences entry is an array of charact er codes and character\n names organized as follows:\n code1 name1,1 na me1,2 ...\n code2 name2,1 name2,2 ...\n ...\n coden namen,1 namen,2 ...\n Each code is the first index in a sequence of characters to be changed. The first\n character name after the code becomes the name correspond ing to that code.\n Subsequent names replace consecutive code indices until th e next code appears in\n the array or the array ends. These sequences may be s pecified in any order but\n should not overlap.\n For example, in the encodi ng dictionary in Example 5.10, the name quotesingle\n ( \' ) is associated wit h character code 39, Adieresis (A) with code 128, Aring (A)\n with 129, and tr ademark ((TM)) with 170.')\
1886 .done().done()\
1887 .done()
1888
1889 pdfspec.addClass('CIDSystemInfoDictionary', 'Dictionary', 'Entries in a CIDSys temInfo dictionary')\
1890 .required('NULL')\
1891 .field('Registry')\
1892 .name('Registry')\
1893 .type('string')\
1894 .comment('(Required) A string identifying the issuer of the character collection-for exam-\nple, Adobe. For information about assigning a registry ide ntifier, consult the ASN\nDeveloper Program Web site or contact the Adobe Soluti ons Network (see the\nBibliography).')\
1895 .done().done()\
1896 .required('NULL')\
1897 .field('Ordering')\
1898 .name('Ordering')\
1899 .type('string')\
1900 .comment('(Required) A string that uniquely names the character collec tion within the speci-\nfied registry-for example, Japan1.')\
1901 .done().done()\
1902 .required('NULL')\
1903 .field('Supplement')\
1904 .name('Supplement')\
1905 .type('integer')\
1906 .comment('(Required) The supplement number of the character collection . An original charac-\nter collection has a supplement number of 0. Whenever add itional CIDs are\nassigned in a character collection, the supplement number is i ncreased. Supple-\nments do not alter the ordering of existing CIDs in the chara cter collection. This\nvalue is not used in determining compatibility between ch aracter collections.')\
1907 .done().done()\
1908 .done()
1909
1910 pdfspec.addClass('CIDFontDictionary', 'Dictionary', 'Entries in a CIDFont dict ionary')\
1911 .required('NULL')\
1912 .field('Type')\
1913 .name('Type')\
1914 .type('name')\
1915 .comment('(Required) The type of PDF object that this dictionary descr ibes; must be\nFont for a CIDFont dictionary.')\
1916 .done().done()\
1917 .required('NULL')\
1918 .field('Subtype')\
1919 .name('Subtype')\
1920 .type('name')\
1921 .comment('(Required) The type of CIDFont; CIDFontType0 or CIDFontType2 .')\
1922 .must([datatypes.PdfName('CIDFontType0'), datatypes.PdfName('CIDFontTy pe2')])\
1923 .done().done()\
1924 .required('NULL')\
1925 .field('BaseFont')\
1926 .name('BaseFont')\
1927 .type('name')\
1928 .comment('(Required) The PostScript name of the CIDFont. For Type 0 CI DFonts, this\nis usually the value of the CIDFontName entry in the CIDFont progr am. For\nType 2 CIDFonts, it is derived the same way as for a simple TrueType fo nt;\nsee Section 5.5.2, "TrueType Fonts." In either case, the name can have a su b-\nset prefix if appropriate; see Section 5.5.3, "Font Subsets."')\
1929 .done().done()\
1930 .required('NULL')\
1931 .field('CIDSystemInfo')\
1932 .name('CIDSystemInfo')\
1933 .type('dictionary')\
1934 .comment('(Required) A dictionary containing entries that define the c haracter collec-\ntion of the CIDFont. See Table 5.12 on page 337.')\
1935 .done().done()\
1936 .optional()\
1937 .field('FontDescriptor')\
1938 .name('FontDescriptor')\
1939 .type('FontDescriptorDictionary')\
1940 .comment('(Required; must be an indirect reference) A font descriptor describing the\nCIDFont\'s default metrics other than its glyph widths (see Sect ion 5.7,\n"Font Descriptors").')\
1941 .done().done()\
1942 .optional()\
1943 .field('DW')\
1944 .name('DW')\
1945 .type('integer')\
1946 .comment('(Optional) The default width for glyphs in the CIDFont (see "Glyph Met-\nrics in CIDFonts" on page 340). Default value: 1000.')\
1947 .done().done()\
1948 .optional()\
1949 .field('W')\
1950 .name('W')\
1951 .type('array')\
1952 .comment('(Optional) A description of the widths for the glyphs in the CIDFont. The\narray\'s elements have a variable format that can specify individ ual widths\nfor consecutive CIDs or one width for a range of CIDs (see "Glyph Me trics\nin CIDFonts" on page 340). Default value: none (the DW value is used for\ nall glyphs).')\
1953 .done().done()\
1954 .optional()\
1955 .field('DW2')\
1956 .name('DW2')\
1957 .type('array')\
1958 .comment('(Optional; applies only to CIDFonts used for vertical writin g) An array of two\nnumbers specifying the default metrics for vertical writing (see "Glyph\nMetrics in CIDFonts" on page 340). Default value: [880 -1000].')\
1959 .done().done()\
1960 .optional()\
1961 .field('W2')\
1962 .name('W2')\
1963 .type('array')\
1964 .comment('(Optional; applies only to CIDFonts used for vertical writin g) A description of\nthe metrics for vertical writing for the glyphs in the CIDF ont (see "Glyph\nMetrics in CIDFonts" on page 340). Default value: none (the DW2 value is\nused for all glyphs).')\
1965 .done().done()\
1966 .optional()\
1967 .field('CIDToGIDMap')\
1968 .name('CIDToGIDMap')\
1969 .type('stream or name')\
1970 .comment('(Optional; Type 2 CIDFonts only) A specification of the mapp ing from CIDs\nto glyph indices. If the value is a stream, the bytes in the stre am contain the\nmapping from CIDs to glyph indices: the glyph index for a partic ular CID\nvalue c is a 2-byte value stored in bytes 2 x c and 2 x c + 1, where t he first\nbyte is the high-order byte. If the value of CIDToGIDMap is a name, it must\nbe Identity, indicating that the mapping between CIDs and glyph indices i s\nthe identity mapping. Default value: Identity.\nThis entry may appear only in a Type 2 CIDFont whose associated True-\nType font program is embedded in the P DF file (see the next section).')\
1971 .done().done()\
1972 .done()
1973
1974 pdfspec.addClass('CMapDictionary', 'Dictionary', 'Additional entries in a CMap dictionary')\
1975 .required('NULL')\
1976 .field('Type')\
1977 .name('Type')\
1978 .type('name')\
1979 .comment('(Required) The type of PDF object that this dictionary descr ibes; must be\nCMap for a CMap dictionary. (Note that although this object is th e value of\nan entry named Encoding in a Type 0 font, its type is CMap.)')\
1980 .done().done()\
1981 .required('NULL')\
1982 .field('CMapName')\
1983 .name('CMapName')\
1984 .type('name')\
1985 .comment('(Required) The PostScript name of the CMap. This should be t he same as the\nvalue of CMapName in the CMap file itself.')\
1986 .done().done()\
1987 .required('NULL')\
1988 .field('CIDSystemInfo')\
1989 .name('CIDSystemInfo')\
1990 .type('dictionary or array')\
1991 .comment('(Required) A dictionary or array containing entries that def ine the character\ncollection for the CIDFont or CIDFonts associated with the CM ap. If the\nCMap selects only font number 0 and specifies character selectors th at are\nCIDs, this entry can be a dictionary identifying the character collectio n for\nthe associated CIDFont. Otherwise, it is an array indexed by the font num -\nber. If the character selectors for a given font number are CIDs, the corre-\ nsponding array element is a dictionary identifying the character collection\nfo r the associated CIDFont. If the character selectors are names or codes (to\nbe used with an associated font, not a CIDFont), the array element should\nbe null. For details of the CIDSystemInfo dictionaries, see Section 5.6.2,\n"CIDSystemIn fo Dictionaries."\nNote: In all PDF versions up to and including PDF 1.4, CIDSys temInfo must be\neither a dictionary or a one-element array containing a diction ary.\nThe value of this entry should be the same as the value of CIDSystemInfo i n\nthe CMap file itself.')\
1992 .done().done()\
1993 .optional()\
1994 .field('WMode')\
1995 .name('WMode')\
1996 .type('integer')\
1997 .comment('(Optional) A code that determines the writing mode for any C IDFont with\nwhich this CMap is combined:\n 0 Horizontal\n 1 Vertica l\nDefault value: 0.\nThe value of this entry should be the same as the value of WMode in the\nCMap file itself.')\
1998 .done().done()\
1999 .optional()\
2000 .field('UseCMap')\
2001 .name('UseCMap')\
2002 .type('name or stream')\
2003 .comment('(Optional) The name of a predefined CMap, or a stream contai ning a CMap,\nthat is to be used as the base for this CMap. This allows the CMap to be de-\nfined differentially, specifying only the character mappings that di ffer from\nthe base CMap.')\
2004 .done().done()\
2005 .done()
2006
2007 pdfspec.addClass('Type0FontDictionary', 'FontDictionary', 'Entries in a Type 0 font dictionary')\
2008 .required('NULL')\
2009 .field('Type')\
2010 .name('Type')\
2011 .type('name')\
2012 .comment('(Required) The type of PDF object that this dictionary descr ibes; must be\nFont for a font dictionary.')\
2013 .done().done()\
2014 .required('NULL')\
2015 .field('Subtype')\
2016 .name('Subtype')\
2017 .type('name')\
2018 .comment('(Required) The type of font; must be Type0 for a Type 0 font .')\
2019 .must([datatypes.PdfName('Type0')])\
2020 .done().done()\
2021 .required('NULL')\
2022 .field('BaseFont')\
2023 .name('BaseFont')\
2024 .type('name')\
2025 .comment('(Required) The PostScript name of the font. In principle, th is is an arbitrary\nname, since there is no font program associated directly wit h a Type 0 font\ndictionary. The conventions described here ensure maximum compa tibility\nwith existing Acrobat products.\nIf the descendant is a Type 0 CIDFont , this name should be the concatenation\nof the CIDFont\'s BaseFont name, a hyph en, and the CMap name given in the\nEncoding entry (or the CMapName entry in the CMap program itself). If the\ndescendant is a Type 2 CIDFont, this name should be the same as the\nCIDFont\'s BaseFont name.')\
2026 .done().done()\
2027 .required('NULL')\
2028 .field('Encoding')\
2029 .name('Encoding')\
2030 .type('name or stream')\
2031 .comment('(Required) The name of a predefined CMap, or a stream contai ning a CMap\nprogram, that maps character codes to font numbers and CIDs. If the descen-\ndant is a Type 2 CIDFont whose associated TrueType font program is not em-\nbedded in the PDF file, the Encoding entry must be a predefined CMap name\ n(see "Glyph Selection in CIDFonts" on page 339).')\
2032 .done().done()\
2033 .required('NULL')\
2034 .field('DescendantFonts')\
2035 .name('DescendantFonts')\
2036 .type('array')\
2037 .comment('(Required) An array specifying one or more fonts or CIDFonts that are\ndescendants of this composite font. This array is indexed by the font number\nthat is obtained by mapping a character code through the CMap specified in\nthe Encoding entry.\nNote: In all PDF versions up to and including PDF 1.4, DescendantFonts must\nbe a one-element array containing a CIDFont dictionary.') \
2038 .done().done()\
2039 .optional()\
2040 .field('ToUnicode')\
2041 .name('ToUnicode')\
2042 .type('stream')\
2043 .comment('(Optional) A stream containing a CMap file that maps charact er codes to\nUnicode values (see Section 5.9, "ToUnicode CMaps").')\
2044 .done().done()\
2045 .done()
2046
2047 pdfspec.addClass('FontDescriptorDictionary', 'Dictionary', 'Entries common to all font descriptors')\
2048 .required('NULL')\
2049 .field('Type')\
2050 .name('Type')\
2051 .type('name')\
2052 .comment('(Required) The type of PDF object that this dictionary descr ibes; must be\nFontDescriptor for a font descriptor.')\
2053 .must([datatypes.PdfName('FontDescriptor')])\
2054 .done().done()\
2055 .required('NULL')\
2056 .field('FontName')\
2057 .name('FontName')\
2058 .type('name')\
2059 .comment('(Required) The PostScript name of the font. This should be t he same as the\nvalue of BaseFont in the font or CIDFont dictionary that refers to this font\ndescriptor.')\
2060 .done().done()\
2061 .required('NULL')\
2062 .field('Flags')\
2063 .name('Flags')\
2064 .type('integer')\
2065 .comment('(Required) A collection of flags defining various characteri stics of the font\n(see Section 5.7.1, "Font Descriptor Flags").')\
2066 .done().done()\
2067 .required('NULL')\
2068 .field('FontBBox')\
2069 .name('FontBBox')\
2070 .type('rectangle')\
2071 .comment('(Required) A rectangle (see Section 3.8.3, "Rectangles"), ex pressed in the\nglyph coordinate system, specifying the font bounding box. This is the small-\nest rectangle enclosing the shape that would result if all of the glyphs of the\nfont were placed with their origins coincident and then filled.' )\
2072 .done().done()\
2073 .required('NULL')\
2074 .field('ItalicAngle')\
2075 .name('ItalicAngle')\
2076 .type('number')\
2077 .comment('(Required) The angle, expressed in degrees counterclockwise from the verti-\ncal, of the dominant vertical strokes of the font. (For example , the 9-o\'clock\nposition is 90 degrees, and the 3-o\'clock position is \'90 de grees.) The value is\nnegative for fonts that slope to the right, as almost all italic fonts do.')\
2078 .done().done()\
2079 .required('NULL')\
2080 .field('Ascent')\
2081 .name('Ascent')\
2082 .type('number')\
2083 .comment('(Required) The maximum height above the baseline reached by glyphs in this\nfont, excluding the height of glyphs for accented characters.')\
2084 .done().done()\
2085 .required('NULL')\
2086 .field('Descent')\
2087 .name('Descent')\
2088 .type('number')\
2089 .comment('(Required) The maximum depth below the baseline reached by g lyphs in this\nfont. The value is a negative number.')\
2090 .done().done()\
2091 .optional()\
2092 .field('Leading')\
2093 .name('Leading')\
2094 .type('number')\
2095 .comment('(Optional) The desired spacing between baselines of consecut ive lines of text.\nDefault value: 0.')\
2096 .done().done()\
2097 .required('NULL')\
2098 .field('CapHeight')\
2099 .name('CapHeight')\
2100 .type('number')\
2101 .comment('(Required) The vertical coordinate of the top of flat capita l letters, measured\nfrom the baseline.')\
2102 .done().done()\
2103 .optional()\
2104 .field('XHeight')\
2105 .name('XHeight')\
2106 .type('number')\
2107 .comment('(Optional) The font\'s x height: the vertical coordinate of the top of flat non-\nascending lowercase letters (like the letter x), measured from the baseline.\nDefault value: 0.')\
2108 .done().done()\
2109 .required('NULL')\
2110 .field('StemV')\
2111 .name('StemV')\
2112 .type('number')\
2113 .comment('(Required) The thickness, measured horizontally, of the domi nant vertical\nstems of glyphs in the font.')\
2114 .done().done()\
2115 .optional()\
2116 .field('StemH')\
2117 .name('StemH')\
2118 .type('number')\
2119 .comment('(Optional) The thickness, measured invertically, of the domi nant horizontal\nstems of glyphs in the font. Default value: 0.')\
2120 .done().done()\
2121 .optional()\
2122 .field('AvgWidth')\
2123 .name('AvgWidth')\
2124 .type('number')\
2125 .comment('(Optional) The average width of glyphs in the font. Default value: 0.')\
2126 .done().done()\
2127 .optional()\
2128 .field('MaxWidth')\
2129 .name('MaxWidth')\
2130 .type('number')\
2131 .comment('(Optional) The maximum width of glyphs in the font. Default value: 0.')\
2132 .done().done()\
2133 .optional()\
2134 .field('MissingWidth')\
2135 .name('MissingWidth')\
2136 .type('number')\
2137 .comment('(Optional) The width to use for character codes whose widths are not speci-\nfied in a font dictionary\'s Widths array. This has a predictab le effect only if all\nsuch codes map to glyphs whose actual widths are the same as the Missing-\nWidth value. Default value: 0.')\
2138 .done().done()\
2139 .optional()\
2140 .field('FontFile')\
2141 .name('FontFile')\
2142 .type('stream')\
2143 .comment('(Optional) A stream containing a Type 1 font program (see Se ction 5.8,\n"Embedded Font Programs").')\
2144 .done().done()\
2145 .optional()\
2146 .field('FontFile2')\
2147 .name('FontFile2')\
2148 .type('stream')\
2149 .comment('(Optional; PDF 1.1) A stream containing a TrueType font prog ram (see Sec-\ntion 5.8, "Embedded Font Programs").')\
2150 .done().done()\
2151 .optional()\
2152 .field('FontFile3')\
2153 .name('FontFile3')\
2154 .type('stream')\
2155 .comment('(Optional; PDF 1.2) A stream containing a font program other than Type 1 or\nTrueType. The format of the font program is specified by the Su btype entry\nin the stream dictionary (see Section 5.8, "Embedded Font Programs, " and\nimplementation note 49 in Appendix H).\nAt most, only one of the FontFile , FontFile2, and FontFile3 entries may be\npresent.')\
2156 .done().done()\
2157 .optional()\
2158 .field('CharSet')\
2159 .name('CharSet')\
2160 .type('string')\
2161 .comment('(Optional; meaningful only in Type 1 fonts; PDF 1.1) A strin g listing the char-\nacter names defined in a font subset. The names in this str ing must be in PDF\nsyntax-that is, each name preceded by a slash (/). The names can appear in\nany order. The name .notdef should be omitted; it is assumed to exist in the\nfont subset. If this entry is absent, the only indication of a fon t subset is the\nsubset tag in the FontName entry (see Section 5.5.3, "Font Subs ets").')\
2162 .done().done()\
2163 .done()
2164
2165 pdfspec.addClass('CIDFontDescriptorDictionary', 'Dictionary', 'Additional font descriptor entries for CIDFonts')\
2166 .optional()\
2167 .field('Style')\
2168 .name('Style')\
2169 .type('dictionary')\
2170 .comment('(Optional) A dictionary containing entries that describe the style of the glyphs in\nthe font (see "Style," above).')\
2171 .done().done()\
2172 .optional()\
2173 .field('Lang')\
2174 .name('Lang')\
2175 .type('name')\
2176 .comment('(Optional) A name specifying the language of the font, used for encodings where\nthe language is not implied by the encoding itself. The pos sible values are the\n2-character language codes defined by ISO 639-for example, en for English and ja\nfor Japanese. The complete list of these codes be obtain ed from the International\nOrganization for Standardization (see the Bibliograph y).')\
2177 .done().done()\
2178 .optional()\
2179 .field('FD')\
2180 .name('FD')\
2181 .type('dictionary')\
2182 .comment('(Optional) A dictionary whose keys identify a class of chara cters in a CIDFont.\nEach value is a dictionary containing entries that override the corresponding\nvalues in the main font descriptor dictionary for that class of characters (see "FD,"\nbelow).')\
2183 .done().done()\
2184 .optional()\
2185 .field('CIDSet')\
2186 .name('CIDSet')\
2187 .type('stream')\
2188 .comment('(Optional) A stream identifying which CIDs are present in th e CIDFont file. If this\nentry is present, the CIDFont contains only a subset of the glyphs in the character\ncollection defined by the CIDSystemInfo dictionary . If it is absent, the only indica-\ntion of a CIDFont subset is the subset tag in the FontName entry (see Section 5.5.3,\n"Font Subsets").\nThe stream\'s data is organized as a table of bits indexed by CID. The bits should be\nstored in by tes with the high-order bit first. Each bit corresponds to a CID. The first\nbit of the first byte corresponds to CID 0, the next bit to CID 1, and so on.')\
2189 .done().done()\
2190 .done()
2191
2192 pdfspec.addClass('EmbeddedFontStreamDictionary', 'Dictionary', 'Additional ent ries in an embedded font stream dictionary')\
2193 .optional()\
2194 .field('Length1')\
2195 .name('Length1')\
2196 .type('integer')\
2197 .comment('(Required for Type 1 and TrueType fonts) The length in bytes of the clear-text portion\nof the Type 1 font program (see below), or the entir e TrueType font program, after it\nhas been decoded using the filters specified by the stream\'s Filter entry, if any.')\
2198 .done().done()\
2199 .optional()\
2200 .field('Length2')\
2201 .name('Length2')\
2202 .type('integer')\
2203 .comment('(Required for Type 1 fonts) The length in bytes of the encry pted portion of the Type 1\nfont program (see below) after it has been decoded u sing the filters specified by the\nstream\'s Filter entry.')\
2204 .done().done()\
2205 .optional()\
2206 .field('Length3')\
2207 .name('Length3')\
2208 .type('integer')\
2209 .comment('(Required for Type 1 fonts) The length in bytes of the fixed -content portion of the\nType 1 font program (see below), after it has been deco ded using the filters specified\nby the stream\'s Filter entry. If Length3 is 0, it indicates that the 512 zeros and clearto-\nmark have not been included in th e FontFile font program and must be added.')\
2210 .done().done()\
2211 .optional()\
2212 .field('Subtype')\
2213 .name('Subtype')\
2214 .type('name')\
2215 .comment('(Required if referenced from FontFile3; PDF 1.2) A name spec ifying the format of the\nembedded font program. The name must be Type1C for Typ e 1 compact fonts or CID-\nFontType0C for Type 0 compact CIDFonts. When addition al font formats are added\nto PDF, more values will be defined for Subtype.')\
2216 .done().done()\
2217 .optional()\
2218 .field('Metadata')\
2219 .name('Metadata')\
2220 .type('stream')\
2221 .comment('(Optional; PDF 1.4) A metadata stream containing metadata fo r the embedded font\nprogram (see Section 9.2.2, "Metadata Streams").')\
2222 .done().done()\
2223 .done()
2224
2225 pdfspec.addClass('Type1HalftoneDictionary', 'Dictionary', 'Entries in a type 1 halftone dictionary')\
2226 .optional()\
2227 .field('Type')\
2228 .name('Type')\
2229 .type('name')\
2230 .comment('(Optional) The type of PDF object that this dictionary descr ibes; if\npresent, must be Halftone for a halftone dictionary.')\
2231 .done().done()\
2232 .required('NULL')\
2233 .field('HalftoneType')\
2234 .name('HalftoneType')\
2235 .type('integer')\
2236 .comment('(Required) A code identifying the halftone type that this di ctionary\ndescribes; must be 1 for this type of halftone.')\
2237 .done().done()\
2238 .optional()\
2239 .field('HalftoneName')\
2240 .name('HalftoneName')\
2241 .type('string')\
2242 .comment('(Optional) The name of the halftone dictionary.')\
2243 .done().done()\
2244 .required('NULL')\
2245 .field('Frequency')\
2246 .name('Frequency')\
2247 .type('number')\
2248 .comment('(Required) The screen frequency, measured in halftone cells per inch in\ndevice space.')\
2249 .done().done()\
2250 .required('NULL')\
2251 .field('Angle')\
2252 .name('Angle')\
2253 .type('number')\
2254 .comment('(Required) The screen angle, in degrees of rotation counterc lockwise\nwith respect to the device coordinate system. (Note that most output\n devices have left-handed device spaces; on such devices, a counter-\nclockwise a ngle in device space will correspond to a clockwise angle in\ndefault user space and on the physical medium.)')\
2255 .done().done()\
2256 .required('NULL')\
2257 .field('SpotFunction')\
2258 .name('SpotFunction')\
2259 .type('function or name')\
2260 .comment('(Required) A function object defining the order in which dev ice pixels\nwithin a screen cell are adjusted for different gray levels, or the name of\none of the predefined spot functions (see Table 6.1 on page 385).')\
2261 .done().done()\
2262 .optional()\
2263 .field('AccurateScreens')\
2264 .name('AccurateScreens')\
2265 .type('boolean')\
2266 .comment('(Optional) A flag specifying whether to invoke a special hal ftone al-\ngorithm that is extremely precise, but computationally expensive; see \nbelow for further discussion. Default value: false.')\
2267 .done().done()\
2268 .optional()\
2269 .field('TransferFunction')\
2270 .name('TransferFunction')\
2271 .type('function or name')\
2272 .comment('(Optional) A transfer function, which overrides the current transfer\nfunction in the graphics state for the same component. This entry is\n required if the dictionary is a component of a type 5 halftone (see\n"Type 5 Hal ftones" on page 400) and represents either a nonprimary\nor nonstandard primary color component (see Section 6.3, "Transfer\nFunctions"). The name Identity may be used to specify the identity\nfunction.')\
2273 .done().done()\
2274 .done()
2275
2276 pdfspec.addClass('Type6HalftoneDictionary', 'Dictionary', 'Additional entries specific to a type 6 halftone dictionary')\
2277 .optional()\
2278 .field('Type')\
2279 .name('Type')\
2280 .type('name')\
2281 .comment('(Optional) The type of PDF object that this dictionary descr ibes; if\npresent, must be Halftone for a halftone dictionary.')\
2282 .done().done()\
2283 .required('NULL')\
2284 .field('HalftoneType')\
2285 .name('HalftoneType')\
2286 .type('integer')\
2287 .comment('(Required) A code identifying the halftone type that this di ctionary\ndescribes; must be 6 for this type of halftone.')\
2288 .done().done()\
2289 .optional()\
2290 .field('HalftoneName')\
2291 .name('HalftoneName')\
2292 .type('string')\
2293 .comment('(Optional) The name of the halftone dictionary.')\
2294 .done().done()\
2295 .required('NULL')\
2296 .field('Width')\
2297 .name('Width')\
2298 .type('integer')\
2299 .comment('(Required) The width of the threshold array, in device pixel s.')\
2300 .done().done()\
2301 .required('NULL')\
2302 .field('Height')\
2303 .name('Height')\
2304 .type('integer')\
2305 .comment('(Required) The height of the threshold array, in device pixe ls.')\
2306 .done().done()\
2307 .optional()\
2308 .field('TransferFunction')\
2309 .name('TransferFunction')\
2310 .type('function or name')\
2311 .comment('(Optional) A transfer function, which overrides the current transfer\nfunction in the graphics state for the same component. This entry is\n required if the dictionary is a component of a type 5 halftone (see\n"Type 5 Hal ftones" on page 400) and represents either a nonprimary\nor nonstandard primary color component (see Section 6.3, "Transfer\nFunctions"). The name Identity may be used to specify the identity\nfunction.')\
2312 .done().done()\
2313 .done()
2314
2315 pdfspec.addClass('Type10HalftoneDictionary', 'Dictionary', 'Additional entries specific to a type 10 halftone dictionary')\
2316 .optional()\
2317 .field('Type')\
2318 .name('Type')\
2319 .type('name')\
2320 .comment('(Optional) The type of PDF object that this dictionary descr ibes; if\npresent, must be Halftone for a halftone dictionary.')\
2321 .done().done()\
2322 .required('NULL')\
2323 .field('HalftoneType')\
2324 .name('HalftoneType')\
2325 .type('integer')\
2326 .comment('(Required) A code identifying the halftone type that this di ctionary\ndescribes; must be 10 for this type of halftone.')\
2327 .done().done()\
2328 .optional()\
2329 .field('HalftoneName')\
2330 .name('HalftoneName')\
2331 .type('string')\
2332 .comment('(Optional) The name of the halftone dictionary.')\
2333 .done().done()\
2334 .required('NULL')\
2335 .field('Xsquare')\
2336 .name('Xsquare')\
2337 .type('integer')\
2338 .comment('(Required) The side of square X, in device pixels; see below .')\
2339 .done().done()\
2340 .required('NULL')\
2341 .field('Ysquare')\
2342 .name('Ysquare')\
2343 .type('integer')\
2344 .comment('(Required) The side of square Y, in device pixels; see below .')\
2345 .done().done()\
2346 .optional()\
2347 .field('TransferFunction')\
2348 .name('TransferFunction')\
2349 .type('function or name')\
2350 .comment('(Optional) A transfer function, which overrides the current transfer\nfunction in the graphics state for the same component. This entry is\n required if the dictionary is a component of a type 5 halftone (see\n"Type 5 Hal ftones" on page 400) and represents either a nonprimary\nor nonstandard primary color component (see Section 6.3, "Transfer\nFunctions"). The name Identity may be used to specify the identity\nfunction.')\
2351 .done().done()\
2352 .done()
2353
2354 pdfspec.addClass('Type16HalftoneDictionary', 'Dictionary', 'Additional entries specific to a type 16 halftone dictionary')\
2355 .optional()\
2356 .field('Type')\
2357 .name('Type')\
2358 .type('name')\
2359 .comment('(Optional) The type of PDF object that this dictionary descr ibes; if\npresent, must be Halftone for a halftone dictionary.')\
2360 .done().done()\
2361 .required('NULL')\
2362 .field('HalftoneType')\
2363 .name('HalftoneType')\
2364 .type('integer')\
2365 .comment('(Required) A code identifying the halftone type that this di ctionary\ndescribes; must be 16 for this type of halftone.')\
2366 .done().done()\
2367 .optional()\
2368 .field('HalftoneName')\
2369 .name('HalftoneName')\
2370 .type('string')\
2371 .comment('(Optional) The name of the halftone dictionary.')\
2372 .done().done()\
2373 .required('NULL')\
2374 .field('Width')\
2375 .name('Width')\
2376 .type('integer')\
2377 .comment('(Required) The width of the first (or only) rectangle in the threshold\narray, in device pixels.')\
2378 .done().done()\
2379 .required('NULL')\
2380 .field('Height')\
2381 .name('Height')\
2382 .type('integer')\
2383 .comment('(Required) The height of the first (or only) rectangle in th e threshold\narray, in device pixels.')\
2384 .done().done()\
2385 .optional()\
2386 .field('Width2')\
2387 .name('Width2')\
2388 .type('integer')\
2389 .comment('(Optional) The width of the optional second rectangle in the threshold\narray, in device pixels. If this entry is present, the Height2 entry must\nbe present as well; if this entry is absent, the Height2 entry must also be\nabsent and the threshold array has only one rectangle.')\
2390 .done().done()\
2391 .optional()\
2392 .field('Height2')\
2393 .name('Height2')\
2394 .type('integer')\
2395 .comment('(Optional) The height of the optional second rectangle in th e threshold\narray, in device pixels.')\
2396 .done().done()\
2397 .optional()\
2398 .field('TransferFunction')\
2399 .name('TransferFunction')\
2400 .type('function or name')\
2401 .comment('(Optional) A transfer function, which overrides the current transfer\nfunction in the graphics state for the same component. This entry is\n required if the dictionary is a component of a type 5 halftone (see\n"Type 5 Hal ftones," below) and represents either a nonprimary or\nnonstandard primary color component (see Section 6.3, "Transfer\nFunctions"). The name Identity may be us ed to specify the identity\nfunction.')\
2402 .done().done()\
2403 .done()
2404
2405 pdfspec.addClass('Type5HalftoneDictionary', 'Dictionary', 'Entries in a type 5 halftone dictionary')\
2406 .optional()\
2407 .field('Type')\
2408 .name('Type')\
2409 .type('name')\
2410 .comment('(Optional) The type of PDF object that this dictionary descr ibes; if present,\nmust be Halftone for a halftone dictionary.')\
2411 .done().done()\
2412 .required('NULL')\
2413 .field('HalftoneType')\
2414 .name('HalftoneType')\
2415 .type('number')\
2416 .comment('(Required) A code identifying the halftone type that this di ctionary describes;\nmust be 5 for this type of halftone.')\
2417 .done().done()\
2418 .optional()\
2419 .field('HalftoneName')\
2420 .name('HalftoneName')\
2421 .type('string')\
2422 .comment('(Optional) The name of the halftone dictionary.')\
2423 .done().done()\
2424 .optional()\
2425 .field('[any_colorant_name]')\
2426 .name('[any_colorant_name]')\
2427 .type('dictionary or stream')\
2428 .comment('(Required, one per colorant) The halftone corresponding to t he colorant or\ncolor component named by the key. The halftone may be of any typ e other\nthan 5. Note that the key must be a name object; strings are not permit ted, as\nthey are in type 5 PostScript halftone dictionaries.')\
2429 .done().done()\
2430 .required('NULL')\
2431 .field('Default')\
2432 .name('Default')\
2433 .type('dictionary or stream')\
2434 .comment('(Required) A halftone to be used for any colorant or color c omponent that\ndoes not have an entry of its own. The value may not be a type 5 halftone. If\nthere are any nonprimary colorants, the default halftone must have a transfer\nfunction.')\
2435 .done().done()\
2436 .done()
2437
2438 pdfspec.addClass('SoftMaskDictionary', 'Dictionary', 'Entries in a soft-mask d ictionary')\
2439 .optional()\
2440 .field('Type')\
2441 .name('Type')\
2442 .type('name')\
2443 .comment('(Optional) The type of PDF object that this dictionary descr ibes; if present,\nmust be Mask for a soft-mask dictionary.')\
2444 .done().done()\
2445 .required('NULL')\
2446 .field('S')\
2447 .name('S')\
2448 .type('name')\
2449 .comment('(Required) A subtype specifying the method to be used in der iving the mask\nvalues from the transparency group specified by the G entry:\n Alpha Use the group\'s computed alpha, disregarding its color (see\n Section 7.4.1, "Deriving a Soft Mask from Group Alpha").\n Lum inosity Convert the group\'s computed color to a single-component\n luminosity value (see Section 7.4.2, "Deriving a Soft Mask\n from Group Luminosity").')\
2450 .done().done()\
2451 .required('NULL')\
2452 .field('G')\
2453 .name('G')\
2454 .type('stream')\
2455 .comment('(Required) A transparency group XObject (see Section 7.5.5, "Transparency\nGroup XObjects") to be used as the source of alpha or color value s for deriv-\ning the mask. If the subtype S is Luminosity, the group attributes dictionary\nmust contain a CS entry defining the color space in which the compo siting\ncomputation is to be performed.')\
2456 .done().done()\
2457 .optional()\
2458 .field('BC')\
2459 .name('BC')\
2460 .type('array')\
2461 .comment('(Optional) An array of component values specifying the color to be used as\nthe backdrop against which to composite the transparency group X Object G.\nThis entry is consulted only if the subtype S is Luminosity. The arra y consists\nof n numbers, where n is the number of components in the color space speci-\nfied by the CS entry in the group attributes dictionary (see Section 7. 5.5,\n"Transparency Group XObjects"). Default value: the color space\'s initial\ nvalue, representing black.')\
2462 .done().done()\
2463 .optional()\
2464 .field('TR')\
2465 .name('TR')\
2466 .type('function or name')\
2467 .comment('(Optional) A function object (see Section 3.9, "Functions") specifying the\ntransfer function to be used in deriving the mask values. The fu nction ac-\ncepts one input, the computed group alpha or luminosity (depending o n the\nvalue of the subtype S), and returns one output, the resulting mask value .\nBoth the input and output must be in the range 0.0 to 1.0; if the computed\no utput falls outside this range, it is forced to the nearest valid value. The\nna me Identity may be specified in place of a function object to designate the\nide ntity function. Default value: Identity.')\
2468 .done().done()\
2469 .done()
2470
2471 pdfspec.addClass('SoftMaskImageDictionary', 'Dictionary', 'Additional entry in a soft-mask image dictionary')\
2472 .optional()\
2473 .field('Matte')\
2474 .name('Matte')\
2475 .type('array')\
2476 .comment('(Optional; PDF 1.4) An array of component values specifying the matte color with\nwhich the image data in the parent image has been preblend ed. The array consists of n\nnumbers, where n is the number of components in the color space specified by the\nColorSpace entry in the parent image\'s image dic tionary; the numbers must be valid\ncolor components in that color space. If thi s entry is absent, the image data is not pre-\nblended.')\
2477 .done().done()\
2478 .done()
2479
2480 pdfspec.addClass('TransparencyGroupDictionary', 'Dictionary', 'Additional entr ies specific to a transparency group attributes dictionary')\
2481 .required('NULL')\
2482 .field('S')\
2483 .name('S')\
2484 .type('name')\
2485 .comment('(Required) The group subtype, which identifies the type of g roup whose at-\ntributes this dictionary describes; must be Transparency for a t ransparency\ngroup.')\
2486 .done().done()\
2487 .optional()\
2488 .field('CS')\
2489 .name('CS')\
2490 .type('name or array')\
2491 .comment('(Sometimes required, as discussed below) The group color spa ce, which is used for\nthe following purposes:\n* As the color space into which colors are converted when painted into the\n group\n* As the blending color space in which objects are composited within the group\n (see Section 7.2.3, " Blending Color Space")\n* As the color space of the group as a whole when it in turn is painted as an ob-\n ject onto its backdrop\nThe group color space may be any device or CIE-based color space that treats its\ncomponents as independe nt additive or subtractive values in the range 0.0 to\n1.0, subject to the restr ictions described in Section 7.2.3, "Blending Color\nSpace." These restrictions exclude Lab and lightness-chromaticity ICCBased\ncolor spaces, as well as the sp ecial color spaces Pattern, Indexed, Separation, and\nDeviceN. Device color spac es are subject to remapping according to the Default-\nGray, DefaultRGB, and Def aultCMYK entries in the ColorSpace subdictionary of\nthe current resource dictio nary (see "Default Color Spaces" on page 194).\nOrdinarily, the CS entry is allo wed only for isolated transparency groups (those\nfor which I, below, is true) a nd even then it is optional. However, this entry is re-\nquired in the group att ributes dictionary for any transparency group XObject\nthat has no parent group or page from which to inherit-in particular, one that\nis the value of the G ent ry in a soft-mask dictionary of subtype Luminosity (see\n"Soft-Mask Dictionaries " on page 445).\nIn addition, it is always permissible to specify CS in the grou p attributes diction-\nary associated with a page object, even if I is false or absent. In the normal case in\nwhich the page is imposed directly on the output medium, the page group is\neffectively isolated regardless of the I value, and t he specified CS value is there-\nfore honored. But if the page is in turn used a s an element of some other page\nand if the group is non-isolated, CS is ignored and the color space is inherited\nfrom the actual backdrop with which the page is composited (see Section 7.3.6,\n"Page Group").')\
2492 .done().done()\
2493 .done()
2494
2495 pdfspec.addClass('ViewerPreferencesDictionary', 'Dictionary', 'Entries in a vi ewer preferences dictionary')\
2496 .optional()\
2497 .field('HideToolbar')\
2498 .name('HideToolbar')\
2499 .type('boolean')\
2500 .comment('(Optional) A flag specifying whether to hide the viewer appl ication\'s tool\nbars when the document is active. Default value: false.')\
2501 .done().done()\
2502 .optional()\
2503 .field('HideMenubar')\
2504 .name('HideMenubar')\
2505 .type('boolean')\
2506 .comment('(Optional) A flag specifying whether to hide the viewer appl ication\'s\nmenu bar when the document is active. Default value: false.')\
2507 .done().done()\
2508 .optional()\
2509 .field('HideWindowUI')\
2510 .name('HideWindowUI')\
2511 .type('boolean')\
2512 .comment('(Optional) A flag specifying whether to hide user interface elements in\nthe document\'s window (such as scroll bars and navigation controls ),\nleaving only the document\'s contents displayed. Default value: false.')\
2513 .done().done()\
2514 .optional()\
2515 .field('FitWindow')\
2516 .name('FitWindow')\
2517 .type('boolean')\
2518 .comment('(Optional) A flag specifying whether to resize the document\ 's window to\nfit the size of the first displayed page. Default value: false.')\
2519 .done().done()\
2520 .optional()\
2521 .field('CenterWindow')\
2522 .name('CenterWindow')\
2523 .type('boolean')\
2524 .comment('(Optional) A flag specifying whether to position the documen t\'s window\nin the center of the screen. Default value: false.')\
2525 .done().done()\
2526 .optional()\
2527 .field('DisplayDocTitle')\
2528 .name('DisplayDocTitle')\
2529 .type('boolean')\
2530 .comment('(Optional; PDF 1.4) A flag specifying whether the window\'s title bar\nshould display the document title taken from the Title entry of the d ocu-\nment information dictionary (see Section 9.2.1, "Document Informa-\ntion D ictionary"). If false, the title bar should instead display the name\nof the PDF file containing the document. Default value: false.')\
2531 .done().done()\
2532 .optional()\
2533 .field('NonFullScreenPageMode')\
2534 .name('NonFullScreenPageMode')\
2535 .type('name')\
2536 .comment('(Optional) The document\'s page mode, specifying how to disp lay the\ndocument on exiting full-screen mode:\n UseNone Neither document outline nor thumbnail images\n visible\n Use Outlines Document outline visible\n UseThumbs Thumbnail imag es visible\nThis entry is meaningful only if the value of the PageMode entry in the\ncatalog dictionary (see Section 3.6.1, "Document Catalog") is FullScreen;\n it is ignored otherwise. Default value: UseNone.')\
2537 .done().done()\
2538 .optional()\
2539 .field('Direction')\
2540 .name('Direction')\
2541 .type('name')\
2542 .comment('(Optional; PDF 1.3) The predominant reading order for text:\ n L2R Left to right\n R2L Right to left (i ncluding vertical writing systems\n such as Chinese, Japa nese, and Korean)\nThis entry has no direct effect on the document\'s contents o r page num-\nbering, but can be used to determine the relative positioning of pa ges\nwhen displayed side by side or printed n-up. Default value: L2R.')\
2543 .done().done()\
2544 .optional()\
2545 .field('ViewArea')\
2546 .name('ViewArea')\
2547 .type('name')\
2548 .comment('(Optional; PDF 1.4) The name of the page boundary representi ng the\narea of a page to be displayed when viewing the document on the screen.\ nThe value is the key designating the relevant page boundary in the page\nobject (see "Page Objects" on page 87 and Section 9.10.1, "Page Bound-\naries"). If th e specified page boundary is not defined in the page object,\nits default value will be used, as specified in Table 3.18 on page 88.\nDefault value: CropBox.\nN ote: This entry is intended primarily for use by prepress applications that\nint erpret or manipulate the page boundaries as described in Section 9.10.1,\n"Page Boundaries." Most PDF consumer applications will disregard it.')\
2549 .done().done()\
2550 .optional()\
2551 .field('ViewClip')\
2552 .name('ViewClip')\
2553 .type('name')\
2554 .comment('(Optional; PDF 1.4) The name of the page boundary to which t he con-\ntents of a page are to be clipped when viewing the document on the\nscr een. The value is the key designating the relevant page boundary in\nthe page ob ject (see "Page Objects" on page 87 and Section 9.10.1, "Page\nBoundaries"). If the specified page boundary is not defined in the page\nobject, its default valu e will be used, as specified in Table 3.18 on page\n88. Default value: CropBox.\ nNote: This entry is intended primarily for use by prepress applications that\ni nterpret or manipulate the page boundaries as described in Section 9.10.1,\n"Pag e Boundaries." Most PDF consumer applications will disregard it.')\
2555 .done().done()\
2556 .optional()\
2557 .field('PrintArea')\
2558 .name('PrintArea')\
2559 .type('name')\
2560 .comment('(Optional; PDF 1.4) The name of the page boundary representi ng the\narea of a page to be rendered when printing the document. The value is\n the key designating the relevant page boundary in the page object (see\n"Page Ob jects" on page 87 and Section 9.10.1, "Page Boundaries"). If the\nspecified page boundary is not defined in the page object, its default value\nwill be used, as specified in Table 3.18 on page 88. Default value: CropBox.\nNote: This entry i s intended primarily for use by prepress applications that\ninterpret or manipul ate the page boundaries as described in Section 9.10.1,\n"Page Boundaries." Most PDF consumer applications will disregard it.')\
2561 .done().done()\
2562 .optional()\
2563 .field('PrintClip')\
2564 .name('PrintClip')\
2565 .type('name')\
2566 .comment('(Optional; PDF 1.4) The name of the page boundary to which t he con-\ntents of a page are to be clipped when printing the document. The value \nis the key designating the relevant page boundary in the page object (see\n"Pa ge Objects" on page 87 and Section 9.10.1, "Page Boundaries"). If the\nspecified page boundary is not defined in the page object, its default value\nwill be use d, as specified in Table 3.18 on page 88. Default value: CropBox.\nNote: This en try is intended primarily for use by prepress applications that\ninterpret or ma nipulate the page boundaries as described in Section 9.10.1,\n"Page Boundaries." Most PDF consumer applications will disregard it.')\
2567 .done().done()\
2568 .done()
2569
2570 pdfspec.addClass('OutlineDictionary', 'Dictionary', 'Entries in the outline di ctionary')\
2571 .optional()\
2572 .field('Type')\
2573 .name('Type')\
2574 .type('name')\
2575 .comment('(Optional) The type of PDF object that this dictionary descr ibes; if present,\nmust be Outlines for an outline dictionary.')\
2576 .done().done()\
2577 .optional()\
2578 .field('First')\
2579 .name('First')\
2580 .type('dictionary')\
2581 .comment('(Required; must be an indirect reference) An outline item di ctionary represent-\ning the first top-level item in the outline.')\
2582 .done().done()\
2583 .optional()\
2584 .field('Last')\
2585 .name('Last')\
2586 .type('dictionary')\
2587 .comment('(Required; must be an indirect reference) An outline item di ctionary represent-\ning the last top-level item in the outline.')\
2588 .done().done()\
2589 .optional()\
2590 .field('Count')\
2591 .name('Count')\
2592 .type('integer')\
2593 .comment('(Required if the document has any open outline entries) The total number of\nopen items at all levels of the outline. This entry should be o mitted if there\nare no open outline items.')\
2594 .done().done()\
2595 .done()
2596
2597 pdfspec.addClass('OutlineItemDictionary', 'Dictionary', 'Entries in an outline item dictionary')\
2598 .required('NULL')\
2599 .field('Title')\
2600 .name('Title')\
2601 .type('text string')\
2602 .comment('(Required) The text to be displayed on the screen for this i tem.')\
2603 .done().done()\
2604 .optional()\
2605 .field('Parent')\
2606 .name('Parent')\
2607 .type('dictionary')\
2608 .comment('(Required; must be an indirect reference) The parent of this item in the outline\nhierarchy. The parent of a top-level item is the outline d ictionary itself.')\
2609 .done().done()\
2610 .optional()\
2611 .field('Prev')\
2612 .name('Prev')\
2613 .type('dictionary')\
2614 .comment('(Required for all but the first item at each level; must be an indirect reference)\nThe previous item at this outline level.')\
2615 .done().done()\
2616 .optional()\
2617 .field('Next')\
2618 .name('Next')\
2619 .type('dictionary')\
2620 .comment('(Required for all but the last item at each level; must be a n indirect reference)\nThe next item at this outline level.')\
2621 .done().done()\
2622 .optional()\
2623 .field('First')\
2624 .name('First')\
2625 .type('dictionary')\
2626 .comment('(Required if the item has any descendants; must be an indire ct reference) The\nfirst of this item\'s immediate children in the outline hiera rchy.')\
2627 .done().done()\
2628 .optional()\
2629 .field('Last')\
2630 .name('Last')\
2631 .type('dictionary')\
2632 .comment('(Required if the item has any descendants; must be an indire ct reference) The\nlast of this item\'s immediate children in the outline hierar chy.')\
2633 .done().done()\
2634 .optional()\
2635 .field('Count')\
2636 .name('Count')\
2637 .type('integer')\
2638 .comment('(Required if the item has any descendants) If the item is op en, the total num-\nber of its open descendants at all lower levels of the outli ne hierarchy. If the\nitem is closed, a negative integer whose absolute value sp ecifies how many\ndescendants would appear if the item were reopened.')\
2639 .done().done()\
2640 .optional()\
2641 .field('Dest')\
2642 .name('Dest')\
2643 .type('name, string, or array')\
2644 .comment('(Optional; not permitted if an A entry is present) The desti nation to be\ndisplayed when this item is activated (see Section 8.2.1, "Destina tions"; see\nalso implementation note 56 in Appendix H).')\
2645 .done().done()\
2646 .optional()\
2647 .field('A')\
2648 .name('A')\
2649 .type('dictionary')\
2650 .comment('(Optional; PDF 1.1; not permitted if a Dest entry is present ) The action to be\nperformed when this item is activated (see Section 8.5, "Act ions").')\
2651 .done().done()\
2652 .optional()\
2653 .field('SE')\
2654 .name('SE')\
2655 .type('dictionary')\
2656 .comment('(Optional; PDF 1.3; must be an indirect reference) The struc ture element to\nwhich the item refers (see Section 9.6.1, "Structure Hierarchy" ).\nNote: The ability to associate an outline item with a structure element (suc h as\nthe beginning of a chapter) is a PDF 1.3 feature. For backward compatibili ty\nwith earlier PDF versions, such an item should also specify a destination (D est)\ncorresponding to an area of a page where the contents of the designated st ructure\nelement are displayed.')\
2657 .done().done()\
2658 .optional()\
2659 .field('C')\
2660 .name('C')\
2661 .type('array')\
2662 .comment('(Optional; PDF 1.4) An array of three numbers in the range 0 .0 to 1.0, repre-\nsenting the components in the DeviceRGB color space of the co lor to be used\nfor the outline entry\'s text. Default value: [0.0 0.0 0.0].')\
2663 .done().done()\
2664 .optional()\
2665 .field('F')\
2666 .name('F')\
2667 .type('integer')\
2668 .comment('(Optional; PDF 1.4) A set of flags specifying style characte ristics for display-\ning the outline item\'s text (see Table 8.5). Default valu e: 0.')\
2669 .done().done()\
2670 .done()
2671
2672 pdfspec.addClass('PageLabelDictionary', 'Dictionary', 'Entries in a page label dictionary')\
2673 .optional()\
2674 .field('Type')\
2675 .name('Type')\
2676 .type('name')\
2677 .comment('(Optional) The type of PDF object that this dictionary descr ibes; if present, must be\nPageLabel for a page label dictionary.')\
2678 .done().done()\
2679 .optional()\
2680 .field('S')\
2681 .name('S')\
2682 .type('name')\
2683 .comment('(Optional) The numbering style to be used for the numeric po rtion of each page label:\n D Decimal arabic numerals\n R Uppercase roman numerals\n r Lowercase roman numerals\n A Uppercase letters (A to Z for the first 26 pages, AA to ZZ for the next 26, and so on)\n a Low ercase letters (a to z for the first 26 pages, aa to zz for the next 26, and so on)\nThere is no default numbering style; if no S entry is present, page labels will consist solely\nof a label prefix with no numeric portion. For example, if the P entry (below) specifies the\nlabel prefix Contents, each page will simply be labeled Contents with no page number. (If\nthe P entry is also missing or emp ty, the page label will be an empty string.)')\
2684 .done().done()\
2685 .optional()\
2686 .field('P')\
2687 .name('P')\
2688 .type('text string')\
2689 .comment('(Optional) The label prefix for page labels in this range.') \
2690 .done().done()\
2691 .optional()\
2692 .field('St')\
2693 .name('St')\
2694 .type('integer')\
2695 .comment('(Optional) The value of the numeric portion for the first pa ge label in the range. Sub-\nsequent pages will be numbered sequentially from th is value, which must be greater than\nor equal to 1. Default value: 1.')\
2696 .done().done()\
2697 .done()
2698
2699 pdfspec.addClass('ThreadDictionary', 'Dictionary', 'Entries in a thread dictio nary')\
2700 .optional()\
2701 .field('Type')\
2702 .name('Type')\
2703 .type('name')\
2704 .comment('(Optional) The type of PDF object that this dictionary descr ibes; if present, must be\nThread for a thread dictionary.')\
2705 .done().done()\
2706 .optional()\
2707 .field('F')\
2708 .name('F')\
2709 .type('dictionary')\
2710 .comment('(Required; must be an indirect reference) The first bead in the thread.')\
2711 .done().done()\
2712 .optional()\
2713 .field('I')\
2714 .name('I')\
2715 .type('dictionary')\
2716 .comment('(Optional) A thread information dictionary containing inform ation about the\nthread, such as its title, author, and creation date. The conte nts of this dictionary are\nsimilar to those of the document information diction ary (see Section 9.2.1, "Docu-\nment Information Dictionary").')\
2717 .done().done()\
2718 .done()
2719
2720 pdfspec.addClass('BeadDictionary', 'Dictionary', 'Entries in a bead dictionary ')\
2721 .optional()\
2722 .field('Type')\
2723 .name('Type')\
2724 .type('name')\
2725 .comment('(Optional) The type of PDF object that this dictionary descr ibes; if present, must be\nBead for a bead dictionary.')\
2726 .done().done()\
2727 .optional()\
2728 .field('T')\
2729 .name('T')\
2730 .type('dictionary')\
2731 .comment('(Required for the first bead of a thread; optional for all o thers; must be an indirect refer-\nence) The thread to which this bead belongs.\ nNote: In PDF 1.1, this entry is permitted only for the first bead of a thread. In PDF 1.2\nand higher, it is permitted for any bead but required only for the f irst.')\
2732 .done().done()\
2733 .optional()\
2734 .field('N')\
2735 .name('N')\
2736 .type('dictionary')\
2737 .comment('(Required; must be an indirect reference) The next bead in t he thread. In the last bead,\nthis entry points to the first.')\
2738 .done().done()\
2739 .optional()\
2740 .field('V')\
2741 .name('V')\
2742 .type('dictionary')\
2743 .comment('(Required; must be an indirect reference) The previous bead in the thread. In the first\nbead, this entry points to the last.')\
2744 .done().done()\
2745 .optional()\
2746 .field('P')\
2747 .name('P')\
2748 .type('dictionary')\
2749 .comment('(Required; must be an indirect reference) The page object re presenting the page on\nwhich this bead appears.')\
2750 .done().done()\
2751 .required('NULL')\
2752 .field('R')\
2753 .name('R')\
2754 .type('rectangle')\
2755 .comment('(Required) A rectangle specifying the location of this bead on the page.')\
2756 .done().done()\
2757 .done()
2758
2759 pdfspec.addClass('TransitionDictionary', 'Dictionary', 'Entries in a transitio n dictionary')\
2760 .optional()\
2761 .field('Type')\
2762 .name('Type')\
2763 .type('name')\
2764 .comment('(Optional) The type of PDF object that this dictionary descr ibes; if present, must be\nTrans for a transition dictionary.')\
2765 .done().done()\
2766 .optional()\
2767 .field('D')\
2768 .name('D')\
2769 .type('number')\
2770 .comment('(Optional) The duration of the transition effect, in seconds . Default value: 1.')\
2771 .done().done()\
2772 .optional()\
2773 .field('S')\
2774 .name('S')\
2775 .type('name')\
2776 .comment('(Optional) The transition style to use when moving to this p age from another during a\npresentation:\n Split Two lines sweep across the screen, revealing the new page. The lines may\n be either hori zontal or vertical and may move inward from the edges of\n the pag e or outward from the center, as specified by the Dm and M\n entri es, respectively.\n Blinds Multiple lines, evenly spaced across the scree n, synchronously sweep in\n the same direction to reveal the new p age. The lines may be either hori-\n zontal or vertical, as specif ied by the Dm entry. Horizontal lines move\n downward, vertical li nes to the right.\n Box A rectangular box sweeps inward from the edges of the page or outward\n from the center, as specified by the M e ntry, revealing the new page.\n Wipe A single line sweeps across the sc reen from one edge to the other in the\n direction specified by th e Di entry, revealing the new page.\n Dissolve The old page "dissolves" gra dually to reveal the new one.\n Glitter Similar to Dissolve, except that t he effect sweeps across the page in a\n wide band moving from one side of the screen to the other in the direc-\n tion specified by the Di entry.\n R The new page simply replaces the old one with no s pecial transition ef-\n fect; the D entry is ignored.\nDefault val ue: R.')\
2777 .done().done()\
2778 .optional()\
2779 .field('Dm')\
2780 .name('Dm')\
2781 .type('name')\
2782 .comment('(Optional; Split and Blinds transition styles only) The dime nsion in which the specified\ntransition effect occurs:\n H Horizont al\n V Vertical\nDefault value: H.')\
2783 .done().done()\
2784 .optional()\
2785 .field('M')\
2786 .name('M')\
2787 .type('name')\
2788 .comment('(Optional; Split and Box transition styles only) The directi on of motion for the specified\ntransition effect:\n I Inward from t he edges of the page\n O Outward from the center of the page\nDefaul t value: I.')\
2789 .done().done()\
2790 .optional()\
2791 .field('Di')\
2792 .name('Di')\
2793 .type('number')\
2794 .comment('(Optional; Wipe and Glitter transition styles only) The dire ction in which the specified\ntransition effect moves, expressed in degrees coun terclockwise starting from a left-to-\nright direction. (Note that this differs from the page object\'s Rotate entry, which is\nmeasured clockwise from the top. ) Only the following values are valid:\n 0 Left to right\n 90 Bottom to top (Wipe only)\n 180 Right to left (Wipe only)\n 2 70 Top to bottom\n 315 Top-left to bottom-right (Glitter only)\n Default value: 0.')\
2795 .done().done()\
2796 .done()
2797
2798 pdfspec.addClass('AnnotationDictionary', 'Dictionary', 'Entries common to all annotation dictionaries')\
2799 .optional()\
2800 .field('Type')\
2801 .name('Type')\
2802 .type('name')\
2803 .comment('(Optional) The type of PDF object that this dictionary descr ibes; if present,\nmust be Annot for an annotation dictionary.')\
2804 .done().done()\
2805 .required('NULL')\
2806 .field('Subtype')\
2807 .name('Subtype')\
2808 .type('name')\
2809 .comment('(Required) The type of annotation that this dictionary descr ibes; see Table\n8.14 on page 499 for specific values.')\
2810 .done().done()\
2811 .optional()\
2812 .field('Contents')\
2813 .name('Contents')\
2814 .type('text string')\
2815 .comment('(Required or optional, depending on the annotation type) Tex t to be displayed\nfor the annotation or, if this type of annotation does not di splay text, an al-\nternate description of the annotation\'s contents in human-r eadable form. In\neither case, this text is useful when extracting the document\ 's contents in\nsupport of accessibility to disabled users or for other purposes (see Section\n9.8.2, "Alternate Descriptions").')\
2816 .done().done()\
2817 .optional()\
2818 .field('P')\
2819 .name('P')\
2820 .type('dictionary')\
2821 .comment('(Optional; PDF 1.3; not used in FDF files) An indirect refer ence to the page\nobject with which this annotation is associated.')\
2822 .done().done()\
2823 .required('NULL')\
2824 .field('Rect')\
2825 .name('Rect')\
2826 .type('rectangle')\
2827 .comment('(Required) The annotation rectangle, defining the location o f the annotation\non the page in default user space units.')\
2828 .done().done()\
2829 .optional()\
2830 .field('NM')\
2831 .name('NM')\
2832 .type('text')\
2833 .comment('(Optional; PDF 1.4) The annotation name, a text string uniqu ely identifying\nit among all the annotations on its page.')\
2834 .done().done()\
2835 .optional()\
2836 .field('M')\
2837 .name('M')\
2838 .type('date or string')\
2839 .comment('(Optional; PDF 1.1) The date and time when the annotation wa s most\nrecently modified. The preferred format is a date string as described in Sec-\ntion 3.8.2, "Dates," but viewer applications should be prepared to accept and\ndisplay a string in any format. (See implementation note 59 in Appendix H. )')\
2840 .done().done()\
2841 .optional()\
2842 .field('F')\
2843 .name('F')\
2844 .type('integer')\
2845 .comment('(Optional; PDF 1.1) A set of flags specifying various charac teristics of the an-\nnotation (see Section 8.4.2, "Annotation Flags"). Default value: 0.')\
2846 .done().done()\
2847 .optional()\
2848 .field('BS')\
2849 .name('BS')\
2850 .type('dictionary')\
2851 .comment('(Optional; PDF 1.2) A border style dictionary specifying the characteristics of\nthe annotation\'s border (see Section 8.4.3, "Border Styles "; see also imple-\nmentation note 60 in Appendix H).\nNote: This entry also spe cifies the width and dash pattern for the lines drawn by\nline, square, circle, and ink annotations. See the note under Border (below) for\nadditional informati on.')\
2852 .done().done()\
2853 .optional()\
2854 .field('Border')\
2855 .name('Border')\
2856 .type('array')\
2857 .comment('(Optional) An array specifying the characteristics of the an notation\'s border.\nThe border is specified as a "rounded rectangle."\nIn PDF 1 .0, the array consists of three numbers defining the horizontal cor-\nner radius , vertical corner radius, and border width, all in default user space\nunits. If the corner radii are 0, the border has square (not rounded) corners;\nif the bo rder width is 0, no border is drawn. (See implementation note 61 in\nAppendix H. )\n In PDF 1.1, the array may have a fourth element, an optional dash array\n defining a pattern of dashes and gaps to be used in drawing the border. The\n d ash array is specified in the same format as in the line dash pattern parame-\n ter of the graphics state (see "Line Dash Pattern" on page 155). For example,\n a Border value of [0 0 1 [3 2]] specifies a border 1 unit wide, with square\n corners, drawn with 3-unit dashes alternating with 2-unit gaps. Note that no\n dash phase is specified; the phase is assumed to be 0. (See implementation\n n ote 62 in Appendix H.)\n Note: In PDF 1.2 or later, annotations may ignore this entry and use the BS\n entry (see above) to specify their border styles instea d. In PDF 1.2 and 1.3, only\n widget annotations do so; in PDF 1.4, all of the standard annotation types ex-\n cept Link (see Table 8.14 on page 499) use BS r ather than Border if both are\n present. For backward compatibility, however, B order is still supported for all\n annotation types.\n Default value: [0 0 1]. ')\
2858 .done().done()\
2859 .optional()\
2860 .field('AP')\
2861 .name('AP')\
2862 .type('dictionary')\
2863 .comment('(Optional; PDF 1.2) An appearance dictionary specifying how the annotation\nis presented visually on the page (see Section 8.4.4, "Appearanc e Streams";\nsee also implementation note 60 in Appendix H).')\
2864 .done().done()\
2865 .optional()\
2866 .field('AS')\
2867 .name('AS')\
2868 .type('name')\
2869 .comment('(Required if the appearance dictionary AP contains one or mo re subdictionaries;\nPDF 1.2) The annotation\'s appearance state, which selects the applicable\nappearance stream from an appearance subdictionary (see Section 8.4.4,\n"Appearance Streams"; see also implementation note 60 in Appendix H).')\
2870 .done().done()\
2871 .optional()\
2872 .field('C')\
2873 .name('C')\
2874 .type('array')\
2875 .comment('(Optional; PDF 1.1) An array of three numbers in the range 0 .0 to 1.0, repre-\nsenting the components of a color in the DeviceRGB color spac e. This color\nwill be used for the following purposes:\n* The background of th e annotation\'s icon when closed\n* The title bar of the annotation\'s pop-up w indow\n* The border of a link annotation')\
2876 .done().done()\
2877 .optional()\
2878 .field('CA')\
2879 .name('CA')\
2880 .type('number')\
2881 .comment('(Optional; PDF 1.4) The constant opacity value to be used in painting the\nannotation (see Sections 7.1, "Overview of Transparency," and 7.2 .6, "Shape\nand Opacity Computations"). This value applies to all visible elemen ts of\nthe annotation in its closed state (including its background and border), but\nnot to the pop-up window that appears when the annotation is opened. The\n specified value is used as the initial alpha constant (both stroking and non-\ns troking) for interpreting the annotation\'s appearance stream, if any (see\nSect ion 8.4.4, "Appearance Streams," and "Constant Shape and Opacity" on\npage 444). The implicit blend mode (see Section 7.2.4, "Blend Mode") is\nNormal. Default v alue: 1.0.\n Note: If no explicit appearance stream is defined for the annotation, it will be\n painted by implementation-depe ndent means that do not necessarily conform to\n the Adobe imag ing model; in this case, the effect of this entry is implementation-\n dependent as well.\n Note: This entry is recognized by all of the standard annotation types listed in\n Table 8.14 on page 499 except Link, Movie, Widget, PrinterMark, and TrapNet.')\
2882 .done().done()\
2883 .optional()\
2884 .field('T')\
2885 .name('T')\
2886 .type('text string')\
2887 .comment('(Optional; PDF 1.1) The text label to be displayed in the ti tle bar of the anno-\ntation\'s pop-up window when open and active.')\
2888 .done().done()\
2889 .optional()\
2890 .field('Popup')\
2891 .name('Popup')\
2892 .type('dictionary')\
2893 .comment('(Optional; PDF 1.3) An indirect reference to a pop-up annota tion for enter-\ning or editing the text associated with this annotation.')\
2894 .done().done()\
2895 .optional()\
2896 .field('A')\
2897 .name('A')\
2898 .type('dictionary')\
2899 .comment('(Optional; PDF 1.1) An action to be performed when the annot ation is acti-\nvated (see Section 8.5, "Actions").\nNote: This entry is not per mitted in link annotations if a Dest entry is present\n(see "Link Annotations" o n page 501). Also note that the A entry in movie anno-\ntations has a different meaning (see "Movie Annotations" on page 510).')\
2900 .done().done()\
2901 .optional()\
2902 .field('AA')\
2903 .name('AA')\
2904 .type('dictionary')\
2905 .comment('(Optional; PDF 1.2) An additional-actions dictionary definin g the anno-\ntation\'s behavior in response to various trigger events (see Secti on 8.5.2,\n"Trigger Events"). At the time of publication, this entry is used onl y by wid-\nget annotations.')\
2906 .done().done()\
2907 .optional()\
2908 .field('StructParent')\
2909 .name('StructParent')\
2910 .type('integer')\
2911 .comment('(Required if the annotation is a structural content item; PD F 1.3) The integer\nkey of the annotation\'s entry in the structural parent tree (see "Finding Struc-\nture Elements from Content Items" on page 600).')\
2912 .done().done()\
2913 .done()
2914
2915 pdfspec.addClass('BorderStyleDictionary', 'Dictionary', 'Entries in a border s tyle dictionary')\
2916 .optional()\
2917 .field('Type')\
2918 .name('Type')\
2919 .type('name')\
2920 .comment('(Optional) The type of PDF object that this dictionary descr ibes; if present, must be\nBorder for a border style dictionary.')\
2921 .done().done()\
2922 .optional()\
2923 .field('W')\
2924 .name('W')\
2925 .type('number')\
2926 .comment('(Optional) The border width in points. If this value is 0, n o border is drawn. Default\nvalue: 1.')\
2927 .done().done()\
2928 .optional()\
2929 .field('S')\
2930 .name('S')\
2931 .type('name')\
2932 .comment('(Optional) The border style:\n S (Solid) A solid recta ngle surrounding the annotation.\n D (Dashed) A dashed rectangle surroundi ng the annotation. The dash pattern\n is specified by the D entry (see b elow).\n B (Beveled) A simulated embossed rectangle that appears to be rai sed above the\n surface of the page.\n I (Inset) A simulated engra ved rectangle that appears to be recessed below the\n surface of the pag e.\n U (Underline) A single line along the bottom of the annotation rectan gle.\nOther border styles may be defined in the future. (See implementation note 64 in\nAppendix H.) Default value: S.')\
2933 .done().done()\
2934 .optional()\
2935 .field('D')\
2936 .name('D')\
2937 .type('array')\
2938 .comment('(Optional) A dash array defining a pattern of dashes and gap s to be used in drawing a\ndashed border (border style D above). The dash array is specified in the same format\nas in the line dash pattern parameter of the gr aphics state (see "Line Dash Pattern" on\npage 155). The dash phase is not speci fied and is assumed to be 0. For example, a D\nentry of [3 2] specifies a border drawn with 3-point dashes alternating with 2-point\ngaps. Default value: [3].') \
2939 .done().done()\
2940 .done()
2941
2942 pdfspec.addClass('AppearanceDictionary', 'Dictionary', 'Entries in an appearan ce dictionary')\
2943 .required('NULL')\
2944 .field('N')\
2945 .name('N')\
2946 .type('stream or dictionary')\
2947 .comment('(Required) The annotation\'s normal appearance.')\
2948 .done().done()\
2949 .optional()\
2950 .field('R')\
2951 .name('R')\
2952 .type('stream or dictionary')\
2953 .comment('(Optional) The annotation\'s rollover appearance. Default va lue: the value of\nthe N entry.')\
2954 .done().done()\
2955 .optional()\
2956 .field('D')\
2957 .name('D')\
2958 .type('stream or dictionary')\
2959 .comment('(Optional) The annotation\'s down appearance. Default value: the value of the\nN entry.')\
2960 .done().done()\
2961 .done()
2962
2963 pdfspec.addClass('TextAnnotationDictionary', 'Dictionary', 'Additional entries specific to a text annotation')\
2964 .required('NULL')\
2965 .field('Subtype')\
2966 .name('Subtype')\
2967 .type('name')\
2968 .comment('(Required) The type of annotation that this dictionary descr ibes; must be Text\nfor a text annotation.')\
2969 .done().done()\
2970 .required('NULL')\
2971 .field('Contents')\
2972 .name('Contents')\
2973 .type('text string')\
2974 .comment('(Required) The text to be displayed in the pop-up window whe n the annotation\nis opened. Carriage returns may be used to separate the text i nto paragraphs.')\
2975 .done().done()\
2976 .optional()\
2977 .field('Open')\
2978 .name('Open')\
2979 .type('boolean')\
2980 .comment('(Optional) A flag specifying whether the annotation should i nitially be displayed\nopen. Default value: false (closed).')\
2981 .done().done()\
2982 .optional()\
2983 .field('Name')\
2984 .name('Name')\
2985 .type('name')\
2986 .comment('(Optional) The name of an icon to be used in displaying the annotation. Viewer\napplications should provide predefined icon appearances for at least the follow-\ning standard names:\n Comment Key Note\n Help NewParagraph P aragraph\n Insert\nAdditional names may be supported as well. Default value: Note.\nNote: The annotation dictionary\'s AP entry, if present, takes precedence over the\nName entry; see Table 8.10 on page 490 and Section 8.4.4, "Appearance Streams."')\
2987 .done().done()\
2988 .done()
2989
2990 pdfspec.addClass('ALinkAnnotationDictionary', 'Dictionary', 'Additional entrie s specific to a link annotation')\
2991 .required('NULL')\
2992 .field('Subtype')\
2993 .name('Subtype')\
2994 .type('name')\
2995 .comment('(Required) The type of annotation that this dictionary descr ibes; must be Link\nfor a link annotation.')\
2996 .done().done()\
2997 .optional()\
2998 .field('Contents')\
2999 .name('Contents')\
3000 .type('text string')\
3001 .comment('(Optional; PDF 1.4) An alternate representation of the annot ation\'s contents in\nhuman-readable form, useful when extracting the document\' s contents in sup-\nport of accessibility to disabled users or for other purpose s (see Section 9.8.2,\n"Alternate Descriptions").')\
3002 .done().done()\
3003 .optional()\
3004 .field('Dest')\
3005 .name('Dest')\
3006 .type('array, name, or string')\
3007 .comment('(Optional; not permitted if an A entry is present) A destina tion to be displayed\nwhen the annotation is activated (see Section 8.2.1, "Dest inations"; see also\nimplementation note 66 in Appendix H).')\
3008 .done().done()\
3009 .optional()\
3010 .field('H')\
3011 .name('H')\
3012 .type('name')\
3013 .comment('(Optional; PDF 1.2) The annotation\'s highlighting mode, the visual effect to be\nused when the mouse button is pressed or held down inside its active area:\n N (None) No highlighting.\n I (Invert) Invert the contents of the annotation rectangle.\n O (Outline) Invert the annotation \'s border.\n P (Push) Display the annotation\'s down appearance, if any ( see Section\n 8.4.4, "Appearance Streams"). If no down appearance is def ined, offset\n the contents of the annotation rectangle to appear as if it were being\n "pushed" below the surface of the page.\nA highlighting mode other than P overrides any down appearance defined for\nthe annotation. Def ault value: I.\nNote: In PDF 1.1, highlighting is always done by inverting color s inside the anno-\ntation rectangle.')\
3014 .done().done()\
3015 .optional()\
3016 .field('PA')\
3017 .name('PA')\
3018 .type('dictionary')\
3019 .comment('(Optional; PDF 1.3) A URI action (see "URI Actions" on page 523) formerly\nassociated with this annotation. When Web Capture (Section 9.9, " Web Cap-\nture") changes an annotation from a URI to a go-to action ("Go-To Acti ons"\non page 519), it uses this entry to save the data from the original URI ac tion so\nthat it can be changed back in case the target page for the go-to actio n is subse-\nquently deleted.')\
3020 .done().done()\
3021 .done()
3022
3023 pdfspec.addClass('FreeTextAnnotationDictionary', 'Dictionary', 'Additional ent ries specific to a free text annotation')\
3024 .required('NULL')\
3025 .field('Subtype')\
3026 .name('Subtype')\
3027 .type('name')\
3028 .comment('(Required) The type of annotation that this dictionary descr ibes; must be\nFreeText for a free text annotation.')\
3029 .done().done()\
3030 .required('NULL')\
3031 .field('Contents')\
3032 .name('Contents')\
3033 .type('text string')\
3034 .comment('(Required) The text to be displayed.')\
3035 .done().done()\
3036 .required('NULL')\
3037 .field('DA')\
3038 .name('DA')\
3039 .type('string')\
3040 .comment('(Required) The default appearance string to be used in forma tting the text (see\n"Variable Text" on page 533).\nNote: The annotation diction ary\'s AP entry, if present, takes precedence over the DA\nentry; see Table 8.10 on page 490 and Section 8.4.4, "Appearance Streams."')\
3041 .done().done()\
3042 .optional()\
3043 .field('Q')\
3044 .name('Q')\
3045 .type('integer')\
3046 .comment('(Optional; PDF 1.4) A code specifying the form of quadding ( justification) to be\nused in displaying the annotation\'s text:\n 0 Left- justified\n 1 Centered\n 2 Right-justified\nDefault value: 0 (left-j ustified).')\
3047 .done().done()\
3048 .done()
3049
3050 pdfspec.addClass('LineAnnotationDictionary', 'Dictionary', 'Additional entries specific to a line annotation')\
3051 .required('NULL')\
3052 .field('Subtype')\
3053 .name('Subtype')\
3054 .type('name')\
3055 .comment('(Required) The type of annotation that this dictionary descr ibes; must be Line\nfor a line annotation.')\
3056 .done().done()\
3057 .required('NULL')\
3058 .field('Contents')\
3059 .name('Contents')\
3060 .type('text string')\
3061 .comment('(Required) The text to be displayed in the pop-up window whe n the annotation\nis opened. Carriage returns may be used to separate the text i nto paragraphs.')\
3062 .done().done()\
3063 .required('NULL')\
3064 .field('L')\
3065 .name('L')\
3066 .type('array')\
3067 .comment('(Required) An array of four numbers, [x1 y1 x2 y2 ], specify ing the starting and\nending coordinates of the line in default user space.')\
3068 .done().done()\
3069 .optional()\
3070 .field('BS')\
3071 .name('BS')\
3072 .type('dictionary')\
3073 .comment('(Optional) A border style dictionary (see Table 8.12 on page 495) specifying the\nwidth and dash pattern to be used in drawing the line.\nNo te: The annotation dictionary\'s AP entry, if present, takes precedence over the L\nand BS entries; see Table 8.10 on page 490 and Section 8.4.4, "Appearance St reams."')\
3074 .done().done()\
3075 .optional()\
3076 .field('LE')\
3077 .name('LE')\
3078 .type('array')\
3079 .comment('(Optional; PDF 1.4) An array of two names specifying the lin e ending styles to be\nused in drawing the line. The first and second elements o f the array specify the\nline ending styles for the endpoints defined, respectiv ely, by the first and second\npairs of coordinates, (x1 , y1 ) and (x2 , y2 ), i n the L array. Table 8.19 shows the\npossible values. Default value: [/None /Non e].')\
3080 .done().done()\
3081 .optional()\
3082 .field('IC')\
3083 .name('IC')\
3084 .type('array')\
3085 .comment('(Optional; PDF 1.4) An array of three numbers in the range 0 .0 to 1.0 specifying\nthe components, in the DeviceRGB color space, of the inter ior color with which to\nfill the annotation\'s line endings (see Table 8.19). I f this entry is absent, the inte-\nriors of the line endings are left transparen t.')\
3086 .done().done()\
3087 .done()
3088
3089 pdfspec.addClass('SquareOrCircleAnnotation', 'Dictionary', 'Additional entries specific to a square or circle annotation')\
3090 .required('NULL')\
3091 .field('Subtype')\
3092 .name('Subtype')\
3093 .type('name')\
3094 .comment('(Required) The type of annotation that this dictionary descr ibes; must be Square\nor Circle for a square or circle annotation, respectively. ')\
3095 .done().done()\
3096 .required('NULL')\
3097 .field('Contents')\
3098 .name('Contents')\
3099 .type('text string')\
3100 .comment('(Required) The text to be displayed in the pop-up window whe n the annotation\nis opened. Carriage returns may be used to separate the text i nto paragraphs.')\
3101 .done().done()\
3102 .optional()\
3103 .field('BS')\
3104 .name('BS')\
3105 .type('dictionary')\
3106 .comment('(Optional) A border style dictionary (see Table 8.12 on page 495) specifying the\nline width and dash pattern to be used in drawing the rect angle or ellipse.\nNote: The annotation dictionary\'s AP entry, if present, take s precedence over the\nRect and BS entries; see Table 8.10 on page 490 and Secti on 8.4.4, "Appearance\nStreams."')\
3107 .done().done()\
3108 .optional()\
3109 .field('IC')\
3110 .name('IC')\
3111 .type('array')\
3112 .comment('(Optional; PDF 1.4) An array of three numbers in the range 0 .0 to 1.0 specifying\nthe components, in the DeviceRGB color space, of the inter ior color with which to\nfill the annotation\'s rectangle or ellipse (see Table 8.19). If this entry is absent,\nthe interior of the annotation is left transpar ent.')\
3113 .done().done()\
3114 .done()
3115
3116 pdfspec.addClass('MarkupAnnotationsDictionary', 'Dictionary', 'Additional entr ies specific to markup annotations')\
3117 .required('NULL')\
3118 .field('Subtype')\
3119 .name('Subtype')\
3120 .type('name')\
3121 .comment('(Required) The type of annotation that this dictionary descr ibes; must be\nHighlight, Underline, Squiggly, or StrikeOut for a highlight, und erline,\nsquiggly-underline, or strikeout annotation, respectively.')\
3122 .done().done()\
3123 .required('NULL')\
3124 .field('Contents')\
3125 .name('Contents')\
3126 .type('text string')\
3127 .comment('(Required) The text to be displayed in the pop-up window whe n the annota-\ntion is opened. Carriage returns may be used to separate the text into para-\ngraphs.')\
3128 .done().done()\
3129 .required('NULL')\
3130 .field('QuadPoints')\
3131 .name('QuadPoints')\
3132 .type('array')\
3133 .comment('(Required) An array of 8 x n numbers specifying the coordina tes of n quadri-\nlaterals in default user space. Each quadrilateral encompasses a word or\ngroup of contiguous words in the text underlying the annotation. The coor-\ndinates for each quadrilateral are given in the order\n x1 y1 x2 y2 x 3 y3 x4 y4\nspecifying the quadrilateral\'s four vertices in counterclockwise or der (see\nFigure 8.5). The text is oriented with respect to the edge connecting points\n(x1 , y1) and (x2 , y2). (See implementation note 67 in Appendix H.)\nNo te: The annotation dictionary\'s AP entry, if present, takes precedence over the \nQuadPoints entry; see Table 8.10 on page 490 and Section 8.4.4, "Appearance\nS treams."\n (x3 , y3 )\n t er\n (x2 , y2 )\n pi\n (x4 , y4 )\n Ju\n (x1 , y1 )\n FIGURE 8.5 QuadPoints specification')\
3134 .done().done()\
3135 .done()
3136
3137 pdfspec.addClass('RubberStampAnnotationDictionary', 'Dictionary', 'Additional entries specific to a rubber stamp annotation')\
3138 .required('NULL')\
3139 .field('Subtype')\
3140 .name('Subtype')\
3141 .type('name')\
3142 .comment('(Required) The type of annotation that this dictionary descr ibes; must be Stamp\nfor a rubber stamp annotation.')\
3143 .done().done()\
3144 .required('NULL')\
3145 .field('Contents')\
3146 .name('Contents')\
3147 .type('text string')\
3148 .comment('(Required) The text to be displayed in the pop-up window whe n the annotation\nis opened. Carriage returns may be used to separate the text i nto paragraphs.')\
3149 .done().done()\
3150 .optional()\
3151 .field('Name')\
3152 .name('Name')\
3153 .type('name')\
3154 .comment('(Optional) The name of an icon to be used in displaying the annotation. Viewer\napplications should provide predefined icon appearances for at least the follow-\ning standard names:\n Approved Experime ntal NotApproved\n AsIs Expired NotForPublicRelease\n Confidential Final Sold\n Departmental ForComment TopSecret\n D raft ForPublicRelease\nAdditional names may be supported as w ell. Default value: Draft.\nNote: The annotation dictionary\'s AP entry, if pres ent, takes precedence over the\nName entry; see Table 8.10 on page 490 and Secti on 8.4.4, "Appearance Streams."')\
3155 .done().done()\
3156 .done()
3157
3158 pdfspec.addClass('InkAnnotationDictionary', 'Dictionary', 'Additional entries specific to an ink annotation')\
3159 .required('NULL')\
3160 .field('Subtype')\
3161 .name('Subtype')\
3162 .type('name')\
3163 .comment('(Required) The type of annotation that this dictionary descr ibes; must be Ink for\nan ink annotation.')\
3164 .done().done()\
3165 .required('NULL')\
3166 .field('Contents')\
3167 .name('Contents')\
3168 .type('text string')\
3169 .comment('(Required) The text to be displayed in the pop-up window whe n the annotation\nis opened. Carriage returns may be used to separate the text i nto paragraphs.')\
3170 .done().done()\
3171 .required('NULL')\
3172 .field('InkList')\
3173 .name('InkList')\
3174 .type('array')\
3175 .comment('(Required) An array of n arrays, each representing a stroked path. Each array is a\nseries of alternating horizontal and vertical coordinate s in default user space,\nspecifying points along the path. When drawn, the poin ts are connected by\nstraight lines or curves in an implementation-dependent way . (See implementa-\ntion note 68 in Appendix H.)')\
3176 .done().done()\
3177 .optional()\
3178 .field('BS')\
3179 .name('BS')\
3180 .type('dictionary')\
3181 .comment('(Optional) A border style dictionary (see Table 8.12 on page 495) specifying the\nline width and dash pattern to be used in drawing the path s.\nNote: The annotation dictionary\'s AP entry, if present, takes precedence ov er the\nInkList and BS entries; see Table 8.10 on page 490 and Section 8.4.4, "A ppearance\nStreams."')\
3182 .done().done()\
3183 .done()
3184
3185 pdfspec.addClass('PopUpAnnotationDictionary', 'Dictionary', 'Additional entrie s specific to a pop-up annotation')\
3186 .required('NULL')\
3187 .field('Subtype')\
3188 .name('Subtype')\
3189 .type('name')\
3190 .comment('(Required) The type of annotation that this dictionary descr ibes; must be\nPopup for a pop-up annotation.')\
3191 .done().done()\
3192 .optional()\
3193 .field('Contents')\
3194 .name('Contents')\
3195 .type('text string')\
3196 .comment('(Optional; PDF 1.4) An alternate representation of the annot ation\'s contents\nin human-readable form, useful when extracting the document\' s contents in\nsupport of accessibility to disabled users or for other purposes (see Section\n9.8.2, "Alternate Descriptions").')\
3197 .done().done()\
3198 .optional()\
3199 .field('Parent')\
3200 .name('Parent')\
3201 .type('dictionary')\
3202 .comment('(Optional; must be an indirect reference) The parent annotat ion with which\nthis pop-up annotation is associated.\nNote: If this entry is pr esent, the parent annotation\'s Contents, M, C, and T\nentries (see Table 8.10 o n page 490) override those of the pop-up annotation\nitself.')\
3203 .done().done()\
3204 .optional()\
3205 .field('Open')\
3206 .name('Open')\
3207 .type('boolean')\
3208 .comment('(Optional) A flag specifying whether the pop-up annotation s hould initially\nbe displayed open. Default value: false (closed).')\
3209 .done().done()\
3210 .done()
3211
3212 pdfspec.addClass('FileAttachmentAnnotationDictionary', 'Dictionary', 'Addition al entries specific to a file attachment annotation')\
3213 .required('NULL')\
3214 .field('Subtype')\
3215 .name('Subtype')\
3216 .type('name')\
3217 .comment('(Required) The type of annotation that this dictionary descr ibes; must be\nFileAttachment for a file attachment annotation.')\
3218 .done().done()\
3219 .required('NULL')\
3220 .field('FS')\
3221 .name('FS')\
3222 .type('file specification')\
3223 .comment('(Required) The file associated with this annotation.')\
3224 .done().done()\
3225 .required('NULL')\
3226 .field('Contents')\
3227 .name('Contents')\
3228 .type('text string')\
3229 .comment('(Required) The text to be displayed in the pop-up window whe n the annota-\ntion is opened. Carriage returns may be used to separate the text into para-\ngraphs.')\
3230 .done().done()\
3231 .optional()\
3232 .field('Name')\
3233 .name('Name')\
3234 .type('name')\
3235 .comment('(Optional) The name of an icon to be used in displaying the annotation.\nViewer applications should provide predefined icon appearances for at least\nthe following standard names:\n Graph PushPin\n Paperclip Tag\nAdditional names ma y be supported as well. Default value: PushPin.\nNote: The annotation dictionary \'s AP entry, if present, takes precedence over\nthe Name entry; see Table 8.10 on page 490 and Section 8.4.4, "Appearance\nStreams."')\
3236 .done().done()\
3237 .done()
3238
3239 pdfspec.addClass('SoundAnnotationDictionary', 'Dictionary', 'Additional entrie s specific to a sound annotation')\
3240 .required('NULL')\
3241 .field('Subtype')\
3242 .name('Subtype')\
3243 .type('name')\
3244 .comment('(Required) The type of annotation that this dictionary descr ibes; must be Sound\nfor a sound annotation.')\
3245 .done().done()\
3246 .required('NULL')\
3247 .field('Sound')\
3248 .name('Sound')\
3249 .type('stream')\
3250 .comment('(Required) A sound object defining the sound to be played wh en the annotation\nis activated (see Section 8.7, "Sounds").')\
3251 .done().done()\
3252 .optional()\
3253 .field('Contents')\
3254 .name('Contents')\
3255 .type('text string')\
3256 .comment('(Optional) Text to be displayed in a pop-up window for the a nnotation in place\nof the sound, useful when extracting the document\'s content s in support of\naccessibility to disabled users or for other purposes (see Sect ion 9.8.2, "Alternate\nDescriptions").')\
3257 .done().done()\
3258 .optional()\
3259 .field('Name')\
3260 .name('Name')\
3261 .type('name')\
3262 .comment('(Optional) The name of an icon to be used in displaying the annotation. Viewer\napplications should provide predefined icon appearances for at least the stan-\ndard names Speaker and Microphone; additional names may be s upported as\nwell. Default value: Speaker.\nNote: The annotation dictionary\'s A P entry, if present, takes precedence over the\nName entry; see Table 8.10 on pa ge 490 and Section 8.4.4, "Appearance Streams."')\
3263 .done().done()\
3264 .done()
3265
3266 pdfspec.addClass('MovieAnnotationDictionary', 'Dictionary', 'Additional entrie s specific to a movie annotation')\
3267 .required('NULL')\
3268 .field('Subtype')\
3269 .name('Subtype')\
3270 .type('name')\
3271 .comment('(Required) The type of annotation that this dictionary descr ibes; must be Movie\nfor a movie annotation.')\
3272 .done().done()\
3273 .required('NULL')\
3274 .field('Movie')\
3275 .name('Movie')\
3276 .type('dictionary')\
3277 .comment('(Required) A movie dictionary describing the movie\'s static characteristics (see\nSection 8.8, "Movies").')\
3278 .done().done()\
3279 .optional()\
3280 .field('Contents')\
3281 .name('Contents')\
3282 .type('text string')\
3283 .comment('(Optional; PDF 1.4) An alternate representation of the annot ation\'s contents in\nhuman-readable form, useful when extracting the document\' s contents in sup-\nport of accessibility to disabled users or for other purpose s (see Section 9.8.2,\n"Alternate Descriptions").')\
3284 .done().done()\
3285 .optional()\
3286 .field('A')\
3287 .name('A')\
3288 .type('boolean or dictionary')\
3289 .comment('(Optional) A flag or dictionary specifying whether and how t o play the movie\nwhen the annotation is activated. If this value is a dictionar y, it is a movie activa-\ntion dictionary (see Section 8.8, "Movies") specifying how to play the movie; if it\nis the boolean value true, the movie should be pl ayed using default activation\nparameters; if it is false, the movie should not be played at all. Default value:\ntrue.')\
3290 .done().done()\
3291 .done()
3292
3293 pdfspec.addClass('WidgetAnnotationDictionary', 'Dictionary', 'Additional entri es specific to a widget annotation')\
3294 .required('NULL')\
3295 .field('Subtype')\
3296 .name('Subtype')\
3297 .type('name')\
3298 .comment('(Required) The type of annotation that this dictionary descr ibes; must be Widget\nfor a widget annotation.')\
3299 .done().done()\
3300 .optional()\
3301 .field('Contents')\
3302 .name('Contents')\
3303 .type('text string')\
3304 .comment('(Optional; PDF 1.4) An alternate representation of the annot ation\'s contents in\nhuman-readable form, useful when extracting the document\' s contents in sup-\nport of accessibility to disabled users or for other purpose s (see Section 9.8.2,\n"Alternate Descriptions").')\
3305 .done().done()\
3306 .optional()\
3307 .field('H')\
3308 .name('H')\
3309 .type('name')\
3310 .comment('(Optional) The annotation\'s highlighting mode, the visual e ffect to be used when\nthe mouse button is pressed or held down inside its activ e area:\n N (None) No highlighting.\n I (Invert) Invert the contents o f the annotation rectangle.\n O (Outline) Invert the annotation\'s border.\ n P (Push) Display the annotation\'s down appearance, if any (see Section\n 8.4.4, "Appearance Streams"). If no down appearance is defined, offset\n the contents of the annotation rectangle to appear as if it were being\n "pushed" below the surface of the page.\n T (Toggle) Same as P (whi ch is preferred).\nA highlighting mode other than P overrides any down appearanc e defined for\nthe annotation. Default value: I.')\
3311 .done().done()\
3312 .optional()\
3313 .field('MK')\
3314 .name('MK')\
3315 .type('dictionary')\
3316 .comment('(Optional) An appearance characteristics dictionary to be us ed in constructing a\ndynamic appearance stream specifying the annotation\'s vis ual presentation on\nthe page; see "Variable Text" on page 533 for further discu ssion.\nNote: The name MK for this entry is of historical significance only and has no direct\nmeaning.')\
3317 .done().done()\
3318 .done()
3319
3320 pdfspec.addClass('ActionDictionary', 'Dictionary', 'Entries common to all acti on dictionaries')\
3321 .optional()\
3322 .field('Type')\
3323 .name('Type')\
3324 .type('name')\
3325 .comment('(Optional) The type of PDF object that this dictionary descr ibes; if\npresent, must be Action for an action dictionary.')\
3326 .done().done()\
3327 .required('NULL')\
3328 .field('S')\
3329 .name('S')\
3330 .type('name')\
3331 .comment('(Required) The type of action that this dictionary describes ; see Table 8.34\non page 518 for specific values.')\
3332 .done().done()\
3333 .optional()\
3334 .field('Next')\
3335 .name('Next')\
3336 .type('dictionary or array')\
3337 .comment('(Optional; PDF 1.2) The next action, or sequence of actions, to be per-\nformed after this one. The value is either a single action dictiona ry or an\narray of action dictionaries to be performed in order; see below for f ur-\nther discussion.')\
3338 .done().done()\
3339 .done()
3340
3341 pdfspec.addClass('AnnotationActionsDictionary', 'Dictionary', 'Entries in an a nnotation\'s additional-actions dictionary')\
3342 .optional()\
3343 .field('E')\
3344 .name('E')\
3345 .type('dictionary')\
3346 .comment('(Optional; PDF 1.2) An action to be performed when the curso r enters the annotation\'s\nactive area.')\
3347 .done().done()\
3348 .optional()\
3349 .field('X')\
3350 .name('X')\
3351 .type('dictionary')\
3352 .comment('(Optional; PDF 1.2) An action to be performed when the curso r exits the annotation\'s\nactive area.')\
3353 .done().done()\
3354 .optional()\
3355 .field('D')\
3356 .name('D')\
3357 .type('dictionary')\
3358 .comment('(Optional; PDF 1.2) An action to be performed when the mouse button is pressed\ninside the annotation\'s active area. (The name D stands for "down.")')\
3359 .done().done()\
3360 .optional()\
3361 .field('U')\
3362 .name('U')\
3363 .type('dictionary')\
3364 .comment('(Optional; PDF 1.2) An action to be performed when the mouse button is released\ninside the annotation\'s active area. (The name U stands fo r "up.")\nNote: For backward compatibility, the A entry in an annotation diction ary, if present,\ntakes precedence over this entry (see Table 8.10 on page 490). ')\
3365 .done().done()\
3366 .optional()\
3367 .field('Fo')\
3368 .name('Fo')\
3369 .type('dictionary')\
3370 .comment('(Optional; PDF 1.2; widget annotations only) An action to be performed when the\nannotation receives the input focus.')\
3371 .done().done()\
3372 .optional()\
3373 .field('Bl')\
3374 .name('Bl')\
3375 .type('dictionary')\
3376 .comment('(Optional; PDF 1.2; widget annotations only) (Uppercase B, l owercase L) An action to\nbe performed when the annotation loses the input focus . (The name Bl stands for\n"blurred.")')\
3377 .done().done()\
3378 .done()
3379
3380 pdfspec.addClass('PageObjectActionsDictionary', 'Dictionary', 'Entries in a pa ge object\'s additional-actions dictionary')\
3381 .optional()\
3382 .field('O')\
3383 .name('O')\
3384 .type('dictionary')\
3385 .comment('(Optional; PDF 1.2) An action to be performed when the page is opened (for example,\nwhen the user navigates to it from the next or previous page or via a link annotation or\noutline item). This action is independent of any that may be defined by the Open-\nAction entry in the document catalog (see Section 3.6.1, "Document Catalog"), and is\nexecuted after such an action. (See implementation note 72 in Appendix H.)')\
3386 .done().done()\
3387 .optional()\
3388 .field('C')\
3389 .name('C')\
3390 .type('dictionary')\
3391 .comment('(Optional; PDF 1.2) An action to be performed when the page is closed (for example,\nwhen the user navigates to the next or previous page or follows a link annotation or an\noutline item). This action applies to the page being closed, and is executed before any\nother page is opened. (See implementa tion note 72 in Appendix H.)')\
3392 .done().done()\
3393 .done()
3394
3395 pdfspec.addClass('FormFieldActionsDictionary', 'Dictionary', 'Entries in a for m field\'s additional-actions dictionary')\
3396 .optional()\
3397 .field('K')\
3398 .name('K')\
3399 .type('dictionary')\
3400 .comment('(Optional; PDF 1.3) A JavaScript action to be performed when the user types a key-\nstroke into a text field or combo box or modifies the se lection in a scrollable list box.\nThis allows the keystroke to be checked for v alidity and rejected or modified.')\
3401 .done().done()\
3402 .optional()\
3403 .field('F')\
3404 .name('F')\
3405 .type('dictionary')\
3406 .comment('(Optional; PDF 1.3) A JavaScript action to be performed befo re the field is formatted\nto display its current value. This allows the field\' s value to be modified before format-\nting.')\
3407 .done().done()\
3408 .optional()\
3409 .field('V')\
3410 .name('V')\
3411 .type('dictionary')\
3412 .comment('(Optional; PDF 1.3) A JavaScript action to be performed when the field\'s value is\nchanged. This allows the new value to be checked for val idity. (The name V stands for\n"validate.")')\
3413 .done().done()\
3414 .optional()\
3415 .field('C')\
3416 .name('C')\
3417 .type('dictionary')\
3418 .comment('(Optional; PDF 1.3) A JavaScript action to be performed in o rder to recalculate the\nvalue of this field when that of another field changes. (The name C stands for\n"calculate.") The order in which the document\'s fields are recalculated is defined by the\nCO entry in the interactive form dictionary (see Section 8.6.1, "Interactive Form\nDictionary").')\
3419 .done().done()\
3420 .done()
3421
3422 pdfspec.addClass('DocumentCatalogActionsDictionary', 'Dictionary', 'Entries in the document catalog\'s additional-actions dictionary')\
3423 .optional()\
3424 .field('DC')\
3425 .name('DC')\
3426 .type('dictionary')\
3427 .comment('(Optional; PDF 1.4) A JavaScript action to be performed befo re closing a document.\n(The name DC stands for "document close.")')\
3428 .done().done()\
3429 .optional()\
3430 .field('WS')\
3431 .name('WS')\
3432 .type('dictionary')\
3433 .comment('(Optional; PDF 1.4) A JavaScript action to be performed befo re saving a document.\n(The name WS stands for "will save.")')\
3434 .done().done()\
3435 .optional()\
3436 .field('DS')\
3437 .name('DS')\
3438 .type('dictionary')\
3439 .comment('(Optional; PDF 1.4) A JavaScript action to be performed afte r saving a document. (The\nname DS stands for "did save.")')\
3440 .done().done()\
3441 .optional()\
3442 .field('WP')\
3443 .name('WP')\
3444 .type('dictionary')\
3445 .comment('(Optional; PDF 1.4) A JavaScript action to be performed befo re printing a document.\n(The name WP stands for "will print.")')\
3446 .done().done()\
3447 .optional()\
3448 .field('DP')\
3449 .name('DP')\
3450 .type('dictionary')\
3451 .comment('(Optional; PDF 1.4) A JavaScript action to be performed afte r printing a document.\n(The name DP stands for "did print.")')\
3452 .done().done()\
3453 .done()
3454
3455 pdfspec.addClass('GoToActionDictionary', 'Dictionary', 'Additional entries spe cific to a go-to action')\
3456 .required('NULL')\
3457 .field('S')\
3458 .name('S')\
3459 .type('name')\
3460 .comment('(Required) The type of action that this dictionary describes ; must be GoTo for a\ngo-to action.')\
3461 .done().done()\
3462 .required('NULL')\
3463 .field('D')\
3464 .name('D')\
3465 .type('name, string, or array')\
3466 .comment('(Required) The destination to jump to (see Section 8.2.1, "D estinations").')\
3467 .done().done()\
3468 .done()
3469
3470 pdfspec.addClass('RemoteGoToActionDictionary', 'Dictionary', 'Additional entri es specific to a remote go-to action')\
3471 .required('NULL')\
3472 .field('S')\
3473 .name('S')\
3474 .type('name')\
3475 .comment('(Required) The type of action that this dictionary describes ; must be GoToR\nfor a remote go-to action.')\
3476 .done().done()\
3477 .required('NULL')\
3478 .field('F')\
3479 .name('F')\
3480 .type('file specification')\
3481 .comment('(Required) The file in which the destination is located.')\
3482 .done().done()\
3483 .required('NULL')\
3484 .field('D')\
3485 .name('D')\
3486 .type('name, string, or array')\
3487 .comment('(Required) The destination to jump to (see Section 8.2.1, "D estinations"). If\nthe value is an array defining an explicit destination (as de scribed under\n"Explicit Destinations" on page 474), its first element must be a page number\nwithin the remote document rather than an indirect reference to a page ob-\nject in the current document. The first page is numbered 0.')\
3488 .done().done()\
3489 .optional()\
3490 .field('NewWindow')\
3491 .name('NewWindow')\
3492 .type('boolean')\
3493 .comment('(Optional; PDF 1.2) A flag specifying whether to open the de stination docu-\nment in a new window. If this flag is false, the destination do cument will\nreplace the current document in the same window. If this entry is a bsent,\nthe viewer application should behave in accordance with the current user \npreference.')\
3494 .done().done()\
3495 .done()
3496
3497 pdfspec.addClass('LaunchActionDictionary', 'Dictionary', 'Additional entries s pecific to a launch action')\
3498 .required('NULL')\
3499 .field('S')\
3500 .name('S')\
3501 .type('name')\
3502 .comment('(Required) The type of action that this dictionary describes ; must be Launch\nfor a launch action.')\
3503 .done().done()\
3504 .optional()\
3505 .field('F')\
3506 .name('F')\
3507 .type('file specification')\
3508 .comment('(Required if none of the entries Win, Mac, or Unix is presen t) The application to\nbe launched or the document to be opened or printed. If t his entry is absent\nand the viewer application does not understand any of the a lternative entries,\nit should do nothing.')\
3509 .done().done()\
3510 .optional()\
3511 .field('Win')\
3512 .name('Win')\
3513 .type('dictionary')\
3514 .comment('(Optional) A dictionary containing Windows-specific launch p arameters (see\nthe Table 8.38; see also implementation note 73 in Appendix H).' )\
3515 .done().done()\
3516 .optional()\
3517 .field('Mac')\
3518 .name('Mac')\
3519 .type('(undefined)')\
3520 .comment('(Optional) Mac OS\'specific launch parameters; not yet defin ed.')\
3521 .done().done()\
3522 .optional()\
3523 .field('Unix')\
3524 .name('Unix')\
3525 .type('(undefined)')\
3526 .comment('(Optional) UNIX-specific launch parameters; not yet defined. ')\
3527 .done().done()\
3528 .optional()\
3529 .field('NewWindow')\
3530 .name('NewWindow')\
3531 .type('boolean')\
3532 .comment('(Optional; PDF 1.2) A flag specifying whether to open the de stination docu-\nment in a new window. If this flag is false, the destination do cument will\nreplace the current document in the same window. If this entry is a bsent, the\nviewer application should behave in accordance with the current user prefer-\nence. This entry is ignored if the file designated by the F entry is n ot a PDF\ndocument.')\
3533 .done().done()\
3534 .done()
3535
3536 pdfspec.addClass('WindowsLaunchActionDictionary', 'Dictionary', 'Entries in a Windows launch parameter dictionary')\
3537 .required('NULL')\
3538 .field('F')\
3539 .name('F')\
3540 .type('string')\
3541 .comment('(Required) The file name of the application to be launched o r the document\nto be opened or printed, in standard Windows pathname format. If the name\nstring includes a backslash character (\), the backslash must itself be preceded\nby a backslash.\nNote: This value must be a simple string; it is no t a file specification.')\
3542 .done().done()\
3543 .optional()\
3544 .field('D')\
3545 .name('D')\
3546 .type('string')\
3547 .comment('(Optional) A string specifying the default directory in stan dard DOS syntax.')\
3548 .done().done()\
3549 .optional()\
3550 .field('O')\
3551 .name('O')\
3552 .type('string')\
3553 .comment('(Optional) A string specifying the operation to perform:\n open Open a document.\n print Print a document.\nIf the F entry de signates an application instead of a document, this entry is ig-\nnored and the application is launched. Default value: open.')\
3554 .done().done()\
3555 .optional()\
3556 .field('P')\
3557 .name('P')\
3558 .type('string')\
3559 .comment('(Optional) A parameter string to be passed to the applicatio n designated by\nthe F entry. This entry should be omitted if F designates a doc ument.')\
3560 .done().done()\
3561 .done()
3562
3563 pdfspec.addClass('ThreadActionDictionary', 'Dictionary', 'Additional entries s pecific to a thread action')\
3564 .required('NULL')\
3565 .field('S')\
3566 .name('S')\
3567 .type('name')\
3568 .comment('(Required) The type of action that this dictionary describes ; must be Thread\nfor a thread action.')\
3569 .done().done()\
3570 .optional()\
3571 .field('F')\
3572 .name('F')\
3573 .type('file specification')\
3574 .comment('(Optional) The file containing the desired thread. If this e ntry is absent, the\nthread is in the current file.')\
3575 .done().done()\
3576 .required('NULL')\
3577 .field('D')\
3578 .name('D')\
3579 .type('dictionary, integer, or text string')\
3580 .comment('(Required) The desired destination thread, specified in one of the following\nforms:\n* An indirect reference to a thread dictionary (see S ection 8.3.2, "Articles").\n In this case, the thread must be in the current f ile.\n* The index of the thread within the Threads array of its document\'s cat alog\n (see Section 3.6.1, "Document Catalog"). The first thread in the array has\n index 0.\n* The title of the thread, as specified in its thread informa tion dictionary (see\n Table 8.7 on page 484). If two or more threads have the same title, the one\n appearing first in the document catalog\'s Threads arra y will be used.')\
3581 .done().done()\
3582 .optional()\
3583 .field('B')\
3584 .name('B')\
3585 .type('dictionary or integer')\
3586 .comment('(Optional) The desired bead in the destination thread, speci fied in one of the\nfollowing forms:\n* An indirect reference to a bead diction ary (see Section 8.3.2, "Articles"). In\n this case, the thread must be in the current file.\n* The index of the bead within its thread. The first bead in a thread has\n index 0.')\
3587 .done().done()\
3588 .done()
3589
3590 pdfspec.addClass('URIActionDictionary', 'Dictionary', 'Additional entries spec ific to a URI action')\
3591 .required('NULL')\
3592 .field('S')\
3593 .name('S')\
3594 .type('name')\
3595 .comment('(Required) The type of action that this dictionary describes ; must be URI for a URI\naction.')\
3596 .done().done()\
3597 .required('NULL')\
3598 .field('URI')\
3599 .name('URI')\
3600 .type('string')\
3601 .comment('(Required) The uniform resource identifier to resolve, encod ed in 7-bit ASCII.')\
3602 .done().done()\
3603 .optional()\
3604 .field('IsMap')\
3605 .name('IsMap')\
3606 .type('boolean')\
3607 .comment('(Optional) A flag specifying whether to track the mouse posi tion when the URI is re-\nsolved (see below). Default value: false.\nThis entry applies only to actions triggered by the user\'s clicking an annotation; it is\n ignored for actions associated with outline items or with a document\'s OpenActi on\nentry.')\
3608 .done().done()\
3609 .done()
3610
3611 pdfspec.addClass('URIDictionary', 'Dictionary', 'Entry in a URI dictionary')\
3612 .optional()\
3613 .field('Base')\
3614 .name('Base')\
3615 .type('string')\
3616 .comment('(Optional) The base URI to be used in resolving relative URI references. URI actions\nwithin the document may specify URIs in partial form, to be interpreted relative to\nthis base address. If no base URI is specified, s uch partial URIs will be interpreted rel-\native to the location of the document itself. The use of this entry is parallel to that of\nthe body element <BASE>, as described in section 2.7.2 of Internet RFC 1866, Hyper-\ntext Markup Language 2.0 Proposed Standard (see the Bibliography).')\
3617 .done().done()\
3618 .done()
3619
3620 pdfspec.addClass('SoundActionDictionary', 'Dictionary', 'Additional entries sp ecific to a sound action')\
3621 .required('NULL')\
3622 .field('S')\
3623 .name('S')\
3624 .type('name')\
3625 .comment('(Required) The type of action that this dictionary describes ; must be Sound\nfor a sound action.')\
3626 .done().done()\
3627 .required('NULL')\
3628 .field('Sound')\
3629 .name('Sound')\
3630 .type('stream')\
3631 .comment('(Required) A sound object defining the sound to be played (s ee Section 8.7,\n"Sounds"; see also implementation note 76 in Appendix H).')\
3632 .done().done()\
3633 .optional()\
3634 .field('Volume')\
3635 .name('Volume')\
3636 .type('number')\
3637 .comment('(Optional) The volume at which to play the sound, in the ran ge -1.0 to 1.0.\nHigher values denote greater volume; negative values mute the s ound.\nDefault value: 1.0.')\
3638 .done().done()\
3639 .optional()\
3640 .field('Synchronous')\
3641 .name('Synchronous')\
3642 .type('boolean')\
3643 .comment('(Optional) A flag specifying whether to play the sound synch ronously or\nasynchronously. If this flag is true, the viewer application will r etain control,\nallowing no further user interaction other than canceling the so und, until the\nsound has been completely played. Default value: false.')\
3644 .done().done()\
3645 .optional()\
3646 .field('Repeat')\
3647 .name('Repeat')\
3648 .type('boolean')\
3649 .comment('(Optional) A flag specifying whether to repeat the sound ind efinitely. If this\nentry is present, the Synchronous entry is ignored. Default value: false.')\
3650 .done().done()\
3651 .optional()\
3652 .field('Mix')\
3653 .name('Mix')\
3654 .type('boolean')\
3655 .comment('(Optional) A flag specifying whether to mix this sound with any other sound\nalready playing. If this flag is false, any previously playing sound will be\nstopped before starting this sound; this can be used to stop a re peating sound\n(see Repeat, above). Default value: false.')\
3656 .done().done()\
3657 .done()
3658
3659 pdfspec.addClass('MovieActionDictionary', 'Dictionary', 'Additional entries sp ecific to a movie action')\
3660 .required('NULL')\
3661 .field('S')\
3662 .name('S')\
3663 .type('name')\
3664 .comment('(Required) The type of action that this dictionary describes ; must be Movie\nfor a movie action.')\
3665 .done().done()\
3666 .optional()\
3667 .field('Annot')\
3668 .name('Annot')\
3669 .type('dictionary')\
3670 .comment('(Optional) An indirect reference to a movie annotation ident ifying the movie\nto be played.')\
3671 .done().done()\
3672 .optional()\
3673 .field('T')\
3674 .name('T')\
3675 .type('text string')\
3676 .comment('(Optional) The title of a movie annotation identifying the m ovie to be\nplayed.\nNote: The dictionary must include either an Annot or a T en try, but not both.')\
3677 .done().done()\
3678 .optional()\
3679 .field('Operation')\
3680 .name('Operation')\
3681 .type('name')\
3682 .comment('(Optional) The operation to be performed on the movie:\n P lay Start playing the movie, using the play mode specified by the\n dictionary\'s Mode entry (see Table 8.79 on page 571). If the\n movie is currently paused, it is repositioned to the beginning\n before playing (or to the starting point specified by the dic-\n tionary\'s Start entry, if present).\n Stop Stop playing the movie.\n Pause Pause a playing movie.\n Resume Resume a paused movie.\nDefault value: Play.')\
3683 .done().done()\
3684 .done()
3685
3686 pdfspec.addClass('HideActionDictionary', 'Dictionary', 'Additional entries spe cific to a hide action')\
3687 .required('NULL')\
3688 .field('S')\
3689 .name('S')\
3690 .type('name')\
3691 .comment('(Required) The type of action that this dictionary describes ; must be Hide for a hide\naction.')\
3692 .done().done()\
3693 .required('NULL')\
3694 .field('T')\
3695 .name('T')\
3696 .type('dictionary, string, or array')\
3697 .comment('(Required) The annotation or annotations to be hidden or sho wn, specified in any\nof the following forms:\n* An indirect reference to an an notation dictionary\n* A string giving the fully qualified field name of an int eractive form field whose\n associated widget annotation or annotations are to be affected (see "Field\n Names" on page 532)\n* An array of such dictionari es or strings')\
3698 .done().done()\
3699 .optional()\
3700 .field('H')\
3701 .name('H')\
3702 .type('boolean')\
3703 .comment('(Optional) A flag indicating whether to hide the annotation (true) or show it (false).\nDefault value: true.')\
3704 .done().done()\
3705 .done()
3706
3707 pdfspec.addClass('NamedActionsDictionary', 'Dictionary', 'Additional entries s pecific to named actions')\
3708 .required('NULL')\
3709 .field('S')\
3710 .name('S')\
3711 .type('name')\
3712 .comment('(Required) The type of action that this dictionary describes ; must be Named for a named\naction.')\
3713 .done().done()\
3714 .required('NULL')\
3715 .field('N')\
3716 .name('N')\
3717 .type('name')\
3718 .comment('(Required) The name of the action to be performed (see Table 8.45).')\
3719 .done().done()\
3720 .done()
3721
3722 pdfspec.addClass('InteractiveFormDictionary', 'Dictionary', 'Entries in the in teractive form dictionary')\
3723 .required('NULL')\
3724 .field('Fields')\
3725 .name('Fields')\
3726 .type('array')\
3727 .comment('(Required) An array of references to the document\'s root fi elds (those with\nno ancestors in the field hierarchy).')\
3728 .done().done()\
3729 .optional()\
3730 .field('NeedAppearances')\
3731 .name('NeedAppearances')\
3732 .type('boolean')\
3733 .comment('(Optional) A flag specifying whether to construct appearance streams and\nappearance dictionaries for all widget annotations in the document (see\n"Variable Text" on page 533). Default value: false.')\
3734 .done().done()\
3735 .optional()\
3736 .field('SigFlags')\
3737 .name('SigFlags')\
3738 .type('integer')\
3739 .comment('(Optional; PDF 1.3) A set of flags specifying various docume nt-level char-\nacteristics related to signature fields (see Table 8.48, below, and "Signature\nFields" on page 547). Default value: 0.')\
3740 .done().done()\
3741 .optional()\
3742 .field('CO')\
3743 .name('CO')\
3744 .type('array')\
3745 .comment('(Required if any fields in the document have additional-acti ons dictionaries\ncontaining a C entry; PDF 1.3) An array of indirect references to field dic-\ntionaries with calculation actions, defining the calculation ord er in which\ntheir values will be recalculated when the value of any field chang es (see\nSection 8.5.2, "Trigger Events").')\
3746 .done().done()\
3747 .optional()\
3748 .field('DR')\
3749 .name('DR')\
3750 .type('dictionary')\
3751 .comment('(Optional) A document-wide default value for the DR attribut e of variable\ntext fields (see "Variable Text" on page 533).')\
3752 .done().done()\
3753 .optional()\
3754 .field('DA')\
3755 .name('DA')\
3756 .type('string')\
3757 .comment('(Optional) A document-wide default value for the DA attribut e of variable\ntext fields (see "Variable Text" on page 533).')\
3758 .done().done()\
3759 .optional()\
3760 .field('Q')\
3761 .name('Q')\
3762 .type('integer')\
3763 .comment('(Optional) A document-wide default value for the Q attribute of variable\ntext fields (see "Variable Text" on page 533).')\
3764 .done().done()\
3765 .done()
3766
3767 pdfspec.addClass('FieldDictionary', 'Dictionary', 'Entries common to all field dictionaries')\
3768 .optional()\
3769 .field('FT')\
3770 .name('FT')\
3771 .type('name')\
3772 .comment('(Required for terminal fields; inheritable) The type of fiel d that this dictionary\ndescribes:\n Btn Button (see "Button Fields" o n page 538)\n Tx Text (see "Text Fields" on page 543)\n Ch Choice (see "Choice Fields" on page 545)\n Sig (PDF 1.3) Signature (s ee "Signature Fields" on page 547)\nNote: This entry may be present in a nonterm inal field (one whose descendants\nare themselves fields) in order to provide an inheritable FT value. However, a\nnonterminal field does not logically have a t ype of its own; it is merely a contain-\ner for inheritable attributes that are intended for descendant terminal fields of\nany type.')\
3773 .done().done()\
3774 .optional()\
3775 .field('Parent')\
3776 .name('Parent')\
3777 .type('dictionary')\
3778 .comment('(Required if this field is the child of another in the field hierarchy; absent other-\nwise) The field that is the immediate parent of this one (the field, if any,\nwhose Kids array includes this field). A field can have at most one parent; that\nis, it can be included in the Kids array of at most o ne other field.')\
3779 .done().done()\
3780 .optional()\
3781 .field('Kids')\
3782 .name('Kids')\
3783 .type('array')\
3784 .comment('(Optional) An array of indirect references to the immediate children of this\nfield.')\
3785 .done().done()\
3786 .optional()\
3787 .field('T')\
3788 .name('T')\
3789 .type('text string')\
3790 .comment('(Optional) The partial field name (see "Field Names," below; see also imple-\nmentation notes 82 and 83 in Appendix H).')\
3791 .done().done()\
3792 .optional()\
3793 .field('TU')\
3794 .name('TU')\
3795 .type('text string')\
3796 .comment('(Optional; PDF 1.3) An alternate field name, to be used in p lace of the actual\nfield name wherever the field must be identified in the user interface (such as\nin error or status messages referring to the field). This t ext is also useful\nwhen extracting the document\'s contents in support of acces sibility to dis-\nabled users or for other purposes (see Section 9.8.2, "Alterna te Descrip-\ntions").')\
3797 .done().done()\
3798 .optional()\
3799 .field('TM')\
3800 .name('TM')\
3801 .type('text string')\
3802 .comment('(Optional; PDF 1.3) The mapping name to be used when exporti ng inter-\nactive form field data from the document.')\
3803 .done().done()\
3804 .optional()\
3805 .field('Ff')\
3806 .name('Ff')\
3807 .type('integer')\
3808 .comment('(Optional; inheritable) A set of flags specifying various ch aracteristics of the\nfield (see Table 8.50). Default value: 0.')\
3809 .done().done()\
3810 .optional()\
3811 .field('V')\
3812 .name('V')\
3813 .type('(various)')\
3814 .comment('(Optional; inheritable) The field\'s value, whose format var ies depending on\nthe field type; see the descriptions of individual field types for further infor-\nmation.')\
3815 .done().done()\
3816 .optional()\
3817 .field('DV')\
3818 .name('DV')\
3819 .type('(various)')\
3820 .comment('(Optional; inheritable) The default value to which the field reverts when a\nreset-form action is executed (see "Reset-Form Actions" on page 554). The\nformat of this value is the same as that of V.')\
3821 .done().done()\
3822 .optional()\
3823 .field('AA')\
3824 .name('AA')\
3825 .type('dictionary')\
3826 .comment('(Optional; PDF 1.2) An additional-actions dictionary definin g the field\'s\nbehavior in response to various trigger events (see Section 8.5. 2, "Trigger\nEvents"). This entry has exactly the same meaning as the AA entry i n an\nannotation dictionary (see Section 8.4.1, "Annotation Dictionaries").')\
3827 .done().done()\
3828 .done()
3829
3830 pdfspec.addClass('VariableTextFieldDictionary', 'Dictionary', 'Additional entr ies common to all fields containing variable text')\
3831 .required('NULL')\
3832 .field('DR')\
3833 .name('DR')\
3834 .type('dictionary')\
3835 .comment('(Required; inheritable) A resource dictionary (see Section 3 .7.2, "Resource Diction-\naries") containing default resources (such as fonts, p atterns, or color spaces) to be used\nby the appearance stream. At a minimum, th is dictionary must contain a Font entry\nspecifying the resource name and font d ictionary of the default font for displaying the\nfield\'s text. (See implementa tion note 84 in Appendix H.)')\
3836 .done().done()\
3837 .required('NULL')\
3838 .field('DA')\
3839 .name('DA')\
3840 .type('string')\
3841 .comment('(Required; inheritable) The default appearance string, conta ining a sequence of valid\npage-content graphics or text state operators definin g such properties as the field\'s text\nsize and color.')\
3842 .done().done()\
3843 .optional()\
3844 .field('Q')\
3845 .name('Q')\
3846 .type('integer')\
3847 .comment('(Optional; inheritable) A code specifying the form of quaddi ng (justification) to be\nused in displaying the text:\n 0 Left-justified\ n 1 Centered\n 2 Right-justified\nDefault value: 0 (left-justified). ')\
3848 .done().done()\
3849 .done()
3850
3851 pdfspec.addClass('AppearanceCharacteristicsDictionary', 'Dictionary', 'Entries in an appearance characteristics dictionary')\
3852 .optional()\
3853 .field('R')\
3854 .name('R')\
3855 .type('integer')\
3856 .comment('(Optional) The number of degrees by which the widget annotat ion is rotated\ncounterclockwise relative to the page. The value must be a multi ple of 90.\nDefault value: 0.')\
3857 .done().done()\
3858 .optional()\
3859 .field('BC')\
3860 .name('BC')\
3861 .type('array')\
3862 .comment('(Optional) An array of numbers in the range 0.0 to 1.0 speci fying the color of the\nwidget annotation\'s border. The number of array element s determines the color\nspace in which the color is defined:\n 0 No color; transparent\n 1 DeviceGray\n 3 DeviceRGB\n 4 DeviceCMYK')\
3863 .done().done()\
3864 .optional()\
3865 .field('BG')\
3866 .name('BG')\
3867 .type('array')\
3868 .comment('(Optional) An array of numbers in the range 0.0 to 1.0 speci fying the color of the\nwidget annotation\'s background. The number of array ele ments determines the\ncolor space, as described above for BC.')\
3869 .done().done()\
3870 .optional()\
3871 .field('CA')\
3872 .name('CA')\
3873 .type('text string')\
3874 .comment('(Optional; button fields only) The widget annotation\'s norm al caption, displayed\nwhen it is not interacting with the user.\nNote: Unlike t he remaining entries listed below, which apply only to widget annota-\ntions ass ociated with pushbutton fields (see "Pushbuttons" on page 539), the CA\nentry ca n be used with any type of button field, including checkboxes ("Checkboxes"\non page 539) and radio buttons ("Radio Buttons" on page 540).')\
3875 .done().done()\
3876 .optional()\
3877 .field('RC')\
3878 .name('RC')\
3879 .type('text string')\
3880 .comment('(Optional; pushbutton fields only) The widget annotation\'s rollover caption, dis-\nplayed when the user rolls the cursor into its active ar ea without pressing the\nmouse button.')\
3881 .done().done()\
3882 .optional()\
3883 .field('AC')\
3884 .name('AC')\
3885 .type('text string')\
3886 .comment('(Optional; pushbutton fields only) The widget annotation\'s alternate (down)\ncaption, displayed when the mouse button is pressed within its active area.')\
3887 .done().done()\
3888 .optional()\
3889 .field('I')\
3890 .name('I')\
3891 .type('stream')\
3892 .comment('(Optional; pushbutton fields only; must be an indirect refer ence) A form XObject\ndefining the widget annotation\'s normal icon, displayed w hen it is not inter-\nacting with the user.')\
3893 .done().done()\
3894 .optional()\
3895 .field('RI')\
3896 .name('RI')\
3897 .type('stream')\
3898 .comment('(Optional; pushbutton fields only; must be an indirect refer ence) A form XObject\ndefining the widget annotation\'s rollover icon, displayed when the user rolls the\ncursor into its active area without pressing the mouse button.')\
3899 .done().done()\
3900 .optional()\
3901 .field('IX')\
3902 .name('IX')\
3903 .type('stream')\
3904 .comment('(Optional; pushbutton fields only; must be an indirect refer ence) A form XObject\ndefining the widget annotation\'s alternate (down) icon, d isplayed when the\nmouse button is pressed within its active area.')\
3905 .done().done()\
3906 .optional()\
3907 .field('IF')\
3908 .name('IF')\
3909 .type('dictionary')\
3910 .comment('(Optional; pushbutton fields only) An icon fit dictionary (s ee Table 8.73 on page\n566) specifying how to display the widget annotation\'s i con within its\nannotation rectangle. If present, the icon fit dictionary applie s to all of the anno-\ntation\'s icons (normal, rollover, and alternate).')\
3911 .done().done()\
3912 .optional()\
3913 .field('TP')\
3914 .name('TP')\
3915 .type('integer')\
3916 .comment('(Optional; pushbutton fields only) A code indicating where t o position the text of\nthe widget annotation\'s caption relative to its icon:\n 0 No icon; caption only\n 1 No caption; icon only\n 2 Caption below the icon\n 3 Caption above the icon\n 4 Caption to the right of the icon\n 5 Caption to the left of the icon\n 6 Caption overlaid directly on the icon\nDefault value: 0.')\
3917 .done().done()\
3918 .done()
3919
3920 pdfspec.addClass('CheckboxFieldDictionary', 'Dictionary', 'Additional entry sp ecific to a checkbox field')\
3921 .optional()\
3922 .field('Opt')\
3923 .name('Opt')\
3924 .type('text string')\
3925 .comment('(Optional; inheritable; PDF 1.4) A text string to be used in place of the V entry for the\nvalue of the field.')\
3926 .done().done()\
3927 .done()
3928
3929 pdfspec.addClass('RadioButtonFieldDictionary', 'Dictionary', 'Additional entry specific to a radio button field')\
3930 .optional()\
3931 .field('Opt')\
3932 .name('Opt')\
3933 .type('array')\
3934 .comment('(Optional; inheritable; PDF 1.4) An array of text strings to be used in\nplace of the V entries for the values of the widget annotations rep re-\nsenting the individual radio buttons. Each element in the array repre-\nsen ts the export value of the corresponding widget annotation in the\nKids array of the radio button field.')\
3935 .done().done()\
3936 .done()
3937
3938 pdfspec.addClass('TextFieldDictionary', 'Dictionary', 'Additional entry specif ic to a text field')\
3939 .optional()\
3940 .field('MaxLen')\
3941 .name('MaxLen')\
3942 .type('integer')\
3943 .comment('(Optional; inheritable) The maximum length of the field\'s t ext, in characters.')\
3944 .done().done()\
3945 .done()
3946
3947 pdfspec.addClass('ChoiceFieldDictionary', 'Dictionary', 'Additional entries sp ecific to a choice field')\
3948 .required('NULL')\
3949 .field('Opt')\
3950 .name('Opt')\
3951 .type('array')\
3952 .comment('(Required; inheritable) An array of options to be presented to the user. Each element of\nthe array is either a text string representing one of the available options or a two-element\narray consisting of a text string to gether with a default appearance string for construct-\ning the item\'s appearan ce dynamically at viewing time (see "Variable Text" on page 533;\nsee also imple mentation note 85 in Appendix H).')\
3953 .done().done()\
3954 .optional()\
3955 .field('TI')\
3956 .name('TI')\
3957 .type('integer')\
3958 .comment('(Optional; inheritable) For scrollable list boxes, the top i ndex (the index in the Opt array\nof the first option visible in the list).')\
3959 .done().done()\
3960 .optional()\
3961 .field('I')\
3962 .name('I')\
3963 .type('array')\
3964 .comment('(Sometimes required, otherwise optional; inheritable; PDF 1. 4) For choice fields that allow\nmultiple selection (MultiSelect flag set), an a rray of integers, sorted in ascending order,\nrepresenting the zero-based indice s in the Opt array of the currently selected option\nitems. This entry is requir ed when two or more elements in the Opt array have different\nnames but the same export value, or when the value of the choice field is an array; in\nother case s, it is permitted but not required. If the items identified by this entry diffe r\nfrom those in the V entry of the field dictionary (see below), the V entry ta kes precedence.')\
3965 .done().done()\
3966 .done()
3967
3968 pdfspec.addClass('SignatureDictionary', 'Dictionary', 'Entries in a signature dictionary')\
3969 .optional()\
3970 .field('Type')\
3971 .name('Type')\
3972 .type('name')\
3973 .comment('(Optional) The type of PDF object that this dictionary descr ibes; if present,\nmust be Sig for a signature dictionary.')\
3974 .done().done()\
3975 .required('NULL')\
3976 .field('Filter')\
3977 .name('Filter')\
3978 .type('name')\
3979 .comment('(Required; inheritable) The name of the signature handler to be used for\nauthenticating the field\'s contents, such as Adobe.PPKLite, Entru st.PPKEF,\nCICI.SignIt, or VeriSign.PPKVS.')\
3980 .done().done()\
3981 .optional()\
3982 .field('SubFilter')\
3983 .name('SubFilter')\
3984 .type('name')\
3985 .comment('(Optional) The name of a specific submethod of the specified handler.')\
3986 .done().done()\
3987 .required('NULL')\
3988 .field('ByteRange')\
3989 .name('ByteRange')\
3990 .type('array')\
3991 .comment('(Required) An array of pairs of integers (starting byte offs et, length in bytes)\ndescribing the exact byte range for the digest calculation . Multiple discontig-\nuous byte ranges may be used to describe a digest that do es not include the\nsignature token itself.')\
3992 .done().done()\
3993 .required('NULL')\
3994 .field('Contents')\
3995 .name('Contents')\
3996 .type('string')\
3997 .comment('(Required) The encrypted signature token.')\
3998 .done().done()\
3999 .optional()\
4000 .field('Name')\
4001 .name('Name')\
4002 .type('text string')\
4003 .comment('(Optional) The name of the person or authority signing the d ocument.')\
4004 .done().done()\
4005 .optional()\
4006 .field('M')\
4007 .name('M')\
4008 .type('date')\
4009 .comment('(Optional) The time of signing. Depending on the signature h andler, this\nmay be a normal unverified computer time or a time generated in a verifiable\nway from a secure time server.')\
4010 .done().done()\
4011 .optional()\
4012 .field('Location')\
4013 .name('Location')\
4014 .type('text string')\
4015 .comment('(Optional) The CPU host name or physical location of the sig ning.')\
4016 .done().done()\
4017 .optional()\
4018 .field('Reason')\
4019 .name('Reason')\
4020 .type('text string')\
4021 .comment('(Optional) The reason for the signing, such as (I agree...). ')\
4022 .done().done()\
4023 .done()
4024
4025 pdfspec.addClass('SubmitFormActionDictionary', 'Dictionary', 'Additional entri es specific to a submit-form action')\
4026 .required('NULL')\
4027 .field('S')\
4028 .name('S')\
4029 .type('name')\
4030 .comment('(Required) The type of action that this dictionary describes ; must\nbe SubmitForm for a submit-form action.')\
4031 .done().done()\
4032 .required('NULL')\
4033 .field('F')\
4034 .name('F')\
4035 .type('file specification')\
4036 .comment('(Required) A URL file specification (see Section 3.10.4, "UR L Speci-\nfications") giving the uniform resource locator (URL) of the script\na t the Web server that will process the submission.')\
4037 .done().done()\
4038 .optional()\
4039 .field('Fields')\
4040 .name('Fields')\
4041 .type('array')\
4042 .comment('(Optional) An array identifying which fields to include in t he sub-\nmission or which to exclude, depending on the setting of the\nInclude/E xclude flag in the Flags entry (see Table 8.62). Each ele-\nment of the array is either an indirect reference to a field dictionary\nor (PDF 1.3) a string repre senting the fully qualified name of a field.\nElements of both kinds may be mixe d in the same array.\nIf this entry is omitted, the Include/Exclude flag is igno red; all fields\nin the document\'s interactive form are submitted except those\ nwhose NoExport flag (see Table 8.50 on page 532) is set. (Fields\nwith no value s may also be excluded, depending on the setting of\nthe IncludeNoValueFields fl ag; see Table 8.62.) See the text follow-\ning Table 8.62 for further discussion .')\
4043 .done().done()\
4044 .optional()\
4045 .field('Flags')\
4046 .name('Flags')\
4047 .type('integer')\
4048 .comment('(Optional; inheritable) A set of flags specifying various ch aracteris-\ntics of the action (see Table 8.62). Default value: 0.')\
4049 .done().done()\
4050 .done()
4051
4052 pdfspec.addClass('ResetFormActionDictionary', 'Dictionary', 'Additional entrie s specific to a reset-form action')\
4053 .required('NULL')\
4054 .field('S')\
4055 .name('S')\
4056 .type('name')\
4057 .comment('(Required) The type of action that this dictionary describes ; must be\nResetForm for a reset-form action.')\
4058 .done().done()\
4059 .optional()\
4060 .field('Fields')\
4061 .name('Fields')\
4062 .type('array')\
4063 .comment('(Optional) An array identifying which fields to reset or whi ch to exclude\nfrom resetting, depending on the setting of the Include/Exclude f lag in\nthe Flags entry (see Table 8.64). Each element of the array is either an in-\ndirect reference to a field dictionary or (PDF 1.3) a string representing\ nthe fully qualified name of a field. Elements of both kinds may be mixed\nin th e same array.\nIf this entry is omitted, the Include/Exclude flag is ignored; al l fields in\nthe document\'s interactive form are reset.')\
4064 .done().done()\
4065 .optional()\
4066 .field('Flags')\
4067 .name('Flags')\
4068 .type('integer')\
4069 .comment('(Optional; inheritable) A set of flags specifying various ch aracteristics of\nthe action (see Table 8.64). Default value: 0.')\
4070 .done().done()\
4071 .done()
4072
4073 pdfspec.addClass('ImportDataActionDictionary', 'Dictionary', 'Additional entri es specific to an import-data action')\
4074 .required('NULL')\
4075 .field('S')\
4076 .name('S')\
4077 .type('name')\
4078 .comment('(Required) The type of action that this dictionary describes ; must be ImportData\nfor an import-data action.')\
4079 .done().done()\
4080 .required('NULL')\
4081 .field('F')\
4082 .name('F')\
4083 .type('file specification')\
4084 .comment('(Required) The FDF file from which to import the data. (See implementation\nnotes 87 and 88 in Appendix H.)')\
4085 .done().done()\
4086 .done()
4087
4088 pdfspec.addClass('JavascriptActionDictionary', 'Dictionary', 'Additional entri es specific to a JavaScript action')\
4089 .required('NULL')\
4090 .field('S')\
4091 .name('S')\
4092 .type('name')\
4093 .comment('(Required) The type of action that this dictionary describes ; must be JavaScript\nfor a JavaScript action.')\
4094 .done().done()\
4095 .required('NULL')\
4096 .field('JS')\
4097 .name('JS')\
4098 .type('string or stream')\
4099 .comment('(Required) A string or stream containing the JavaScript scri pt to be executed.\nNote: PDFDocEncoding or Unicode encoding (the latter identif ied by the Unicode\nprefix U+ FEFF) is used to encode the contents of the string or stream. (See imple-\nmentation note 89 in Appendix H.)')\
4100 .done().done()\
4101 .done()
4102
4103 pdfspec.addClass('FDFTrailerDictionary', 'Dictionary', 'Entry in the FDF trail er dictionary')\
4104 .optional()\
4105 .field('Root')\
4106 .name('Root')\
4107 .type('dictionary')\
4108 .comment('(Required; must be an indirect reference) The catalog object for this FDF file (see\n"FDF Catalog," below).')\
4109 .done().done()\
4110 .done()
4111
4112 pdfspec.addClass('FDFCatalogDictionary', 'Dictionary', 'Entries in the FDF cat alog dictionary')\
4113 .optional()\
4114 .field('Version')\
4115 .name('Version')\
4116 .type('name')\
4117 .comment('(Optional; PDF 1.4) The version of the PDF specification to which\nthis FDF file conforms (for example, 1.4), if later than the version\nspe cified in the file\'s header (see "FDF Header" on page 559). If the\nheader spec ifies a later version, or if this entry is absent, the docu-\nment conforms to t he version specified in the header.\nNote: The value of this entry is a name obj ect, not a number, and so\nmust be preceded by a slash character (/) when writte n in the FDF file\n(for example, /1.4).')\
4118 .done().done()\
4119 .required('NULL')\
4120 .field('FDF')\
4121 .name('FDF')\
4122 .type('dictionary')\
4123 .comment('(Required) The FDF dictionary for this file (see Table 8.69) .')\
4124 .done().done()\
4125 .done()
4126
4127 pdfspec.addClass('FDFDictionary', 'Dictionary', 'Entries in the FDF dictionary ')\
4128 .optional()\
4129 .field('F')\
4130 .name('F')\
4131 .type('file specification')\
4132 .comment('(Optional) The source file or target file: the PDF document file that\nthis FDF file was exported from or is intended to be imported into.') \
4133 .done().done()\
4134 .optional()\
4135 .field('ID')\
4136 .name('ID')\
4137 .type('array')\
4138 .comment('(Optional) An array of two strings constituting a file ident ifier (see\nSection 9.3, "File Identifiers") for the source or target file desig nated\nby F, taken from the ID entry in the file\'s trailer dictionary (see Sec- \ntion 3.4.4, "File Trailer").')\
4139 .done().done()\
4140 .optional()\
4141 .field('Fields')\
4142 .name('Fields')\
4143 .type('array')\
4144 .comment('(Optional) An array of FDF field dictionaries (see "FDF Fiel ds" on\npage 564) describing the root fields (those with no ancestors in\nthe fi eld hierarchy) to be exported or imported. This entry and\nthe Pages entry may n ot both be present.')\
4145 .done().done()\
4146 .optional()\
4147 .field('Status')\
4148 .name('Status')\
4149 .type('string')\
4150 .comment('(Optional) A status string to be displayed indicating the re sult of an\naction, typically a submit-form action (see "Submit-Form Actions"\no n page 550). The string is encoded with PDFDocEncoding. (See\nimplementation not e 91 in Appendix H.) This entry and the Pages\nentry may not both be present.')\
4151 .done().done()\
4152 .optional()\
4153 .field('Pages')\
4154 .name('Pages')\
4155 .type('array')\
4156 .comment('(Optional; PDF 1.3) An array of FDF page dictionaries (see " FDF\nPages" on page 566) describing new pages to be added to a PDF\ntarget docum ent. The Fields and Status entries may not be present\ntogether with this entry. ')\
4157 .done().done()\
4158 .optional()\
4159 .field('Encoding')\
4160 .name('Encoding')\
4161 .type('name')\
4162 .comment('(Optional; PDF 1.3) The encoding to be used for any FDF fiel d\nvalue or option (V or Opt in the field dictionary; see Table 8.72 on\npage 56 4) that is a string and does not begin with the Unicode pre-\nfix U+FEFF. (See i mplementation note 92 in Appendix H.) Default\nvalue: PDFDocEncoding.')\
4163 .done().done()\
4164 .optional()\
4165 .field('Annots')\
4166 .name('Annots')\
4167 .type('array')\
4168 .comment('(Optional; PDF 1.3) An array of FDF annotation dictionaries (see\n"FDF Annotation Dictionaries" on page 568). The array can in-\nclude annot ations of any of the standard types listed in Table 8.14\non page 499 except Lin k, Movie, Widget, PrinterMark, and TrapNet.')\
4169 .done().done()\
4170 .optional()\
4171 .field('Differences')\
4172 .name('Differences')\
4173 .type('stream')\
4174 .comment('(Optional; PDF 1.4) A stream containing all the bytes in all incre-\nmental updates made to the underlying PDF document since it was\nopened (see Section 3.4.5, "Incremental Updates"). If a submit-\nform action submittin g the document to a remote server in FDF\nformat has its IncludeAppendSaves flag set (see "Submit-Form\nActions" on page 550), the contents of this stream are i ncluded in\nthe submission. This allows any digital signatures (see "Signature\n Fields" on page 547) to be transmitted to the server. An incremental\nupdate is automatically performed just before the submission takes\nplace, in order to cap ture all changes made to the document. Note\nthat the submission always includes the full set of incremental up-\ndates back to the time the document was first opened, even if some\nof them may already have been included in intervening subm issions.\nNote: Although a Fields or Annots entry (or both) may be present\nalon g with Differences, there is no guarantee that their contents will be\nconsisten t with it. In particular, if Differences contains a digital signa-\nture, only t he values of the form fields given in the Differences stream\ncan be considered trustworthy under that signature.')\
4175 .done().done()\
4176 .optional()\
4177 .field('Target')\
4178 .name('Target')\
4179 .type('string')\
4180 .comment('(Optional; PDF 1.4) The name of a browser frame in which the un-\nderlying PDF document is to be opened. This mimics the behavior\nof the ta rget attribute in HTML <href> tags.')\
4181 .done().done()\
4182 .optional()\
4183 .field('EmbeddedFDFs')\
4184 .name('EmbeddedFDFs')\
4185 .type('array')\
4186 .comment('(Optional; PDF 1.4) An array of file specifications (see Sec tion 3.10,\n"File Specifications") representing other FDF files embedded with-\n in this one (Section 3.10.3, "Embedded File Streams").')\
4187 .done().done()\
4188 .optional()\
4189 .field('JavaScript')\
4190 .name('JavaScript')\
4191 .type('dictionary')\
4192 .comment('(Optional; PDF 1.4) A JavaScript dictionary (see Table 8.71) defin-\ning document-level JavaScript scripts.')\
4193 .done().done()\
4194 .done()
4195
4196 pdfspec.addClass('EncryptedEmbeddedFileStreamDictionary', 'Dictionary', 'Addit ional entry in an embedded file stream dictionary for an encrypted FDF file')\
4197 .optional()\
4198 .field('EncryptionRevision')\
4199 .name('EncryptionRevision')\
4200 .type('integer')\
4201 .comment('(Required if the FDF file is encrypted; PDF 1.4) The revisio n number of the\nFDF encryption algorithm used to encrypt the file. The only val id value\ndefined at the time of publication is 1.')\
4202 .done().done()\
4203 .done()
4204
4205 pdfspec.addClass('JavascriptDictionary', 'Dictionary', 'Entries in the JavaScr ipt dictionary')\
4206 .optional()\
4207 .field('Before')\
4208 .name('Before')\
4209 .type('string or stream')\
4210 .comment('(Optional) A string or stream containing a JavaScript script to be executed\njust before the FDF file is imported.')\
4211 .done().done()\
4212 .optional()\
4213 .field('After')\
4214 .name('After')\
4215 .type('string or stream')\
4216 .comment('(Optional) A string or stream containing a JavaScript script to be executed\njust after the FDF file is imported.')\
4217 .done().done()\
4218 .optional()\
4219 .field('Doc')\
4220 .name('Doc')\
4221 .type('array')\
4222 .comment('(Optional) An array defining additional JavaScript scripts t o be added to\nthose defined in the JavaScript entry of the document\'s name dic tionary (see\nSection 3.6.3, "Name Dictionary"). The array contains an even numb er of\nelements, organized in pairs. The first element of each pair is a name an d the\nsecond is a string or stream defining the script corresponding to that na me.\nEach of the defined scripts will be added to those already defined in the n ame\ndictionary and then executed before the script defined in the Before entry is\nexecuted. As described in "JavaScript Actions" on page 556, these scripts ar e\nused to define JavaScript functions for use by other scripts in the document. ')\
4223 .done().done()\
4224 .done()
4225
4226 pdfspec.addClass('FDFFieldDictionary', 'Dictionary', 'Entries in an FDF field dictionary')\
4227 .optional()\
4228 .field('Kids')\
4229 .name('Kids')\
4230 .type('array')\
4231 .comment('(Optional) An array containing the immediate children of thi s field.\nNote: Unlike the children of fields in a PDF file, which must be speci fied as indirect\nobject references, those of an FDF field may be either direct or indirect objects.')\
4232 .done().done()\
4233 .required('NULL')\
4234 .field('T')\
4235 .name('T')\
4236 .type('text string')\
4237 .comment('(Required) The partial field name (see "Field Names" on page 532).')\
4238 .done().done()\
4239 .optional()\
4240 .field('V')\
4241 .name('V')\
4242 .type('(various)')\
4243 .comment('(Optional) The field\'s value, whose format varies depending on the field type; see\nthe descriptions of individual field types in Section 8 .6.3 for further information.')\
4244 .done().done()\
4245 .optional()\
4246 .field('Ff')\
4247 .name('Ff')\
4248 .type('integer')\
4249 .comment('(Optional) A set of flags specifying various characteristics of the field (see Tables\n8.50 on page 532, 8.53 on page 538, 8.56 on page 543, and 8.58 on page 546). When\nimported into an interactive form, the value of th is entry replaces that of the Ff\nentry in the form\'s corresponding field dicti onary. If this field is present, the SetFf\nand ClrFf entries, if any, are ignor ed.')\
4250 .done().done()\
4251 .optional()\
4252 .field('SetFf')\
4253 .name('SetFf')\
4254 .type('integer')\
4255 .comment('(Optional) A set of flags to be set (turned on) in the Ff en try of the form\'s cor-\nresponding field dictionary. Bits equal to 1 in SetFf c ause the corresponding bits in\nFf to be set to 1. This entry is ignored if an F f entry is present in the FDF field\ndictionary.')\
4256 .done().done()\
4257 .optional()\
4258 .field('ClrFf')\
4259 .name('ClrFf')\
4260 .type('integer')\
4261 .comment('(Optional) A set of flags to be cleared (turned off) in the Ff entry of the form\'s cor-\nresponding field dictionary. Bits equal to 1 in Cl rFf cause the corresponding bits in\nFf to be set to 0. If a SetFf entry is also present in the FDF field dictionary, it is\napplied before this entry. This ent ry is ignored if an Ff entry is present in the FDF\nfield dictionary.')\
4262 .done().done()\
4263 .optional()\
4264 .field('F')\
4265 .name('F')\
4266 .type('integer')\
4267 .comment('(Optional) A set of flags specifying various characteristics of the field\'s widget anno-\ntation (see Section 8.4.2, "Annotation Flags"). W hen imported into an interactive\nform, the value of this entry replaces that of the F entry in the form\'s corresponding\nannotation dictionary. If this field is present, the SetF and ClrF entries, if any, are\nignored.')\
4268 .done().done()\
4269 .optional()\
4270 .field('SetF')\
4271 .name('SetF')\
4272 .type('integer')\
4273 .comment('(Optional) A set of flags to be set (turned on) in the F ent ry of the form\'s corre-\nsponding widget annotation dictionary. Bits equal to 1 in SetF cause the corre-\nsponding bits in F to be set to 1. This entry is igno red if an F entry is present in the\nFDF field dictionary.')\
4274 .done().done()\
4275 .optional()\
4276 .field('ClrF')\
4277 .name('ClrF')\
4278 .type('integer')\
4279 .comment('(Optional) A set of flags to be cleared (turned off) in the F entry of the form\'s corre-\nsponding widget annotation dictionary. Bits equal to 1 in ClrF cause the corre-\nsponding bits in F to be set to 0. If a SetF ent ry is also present in the FDF field\ndictionary, it is applied before this entry . This entry is ignored if an F entry is\npresent in the FDF field dictionary.') \
4280 .done().done()\
4281 .optional()\
4282 .field('AP')\
4283 .name('AP')\
4284 .type('dictionary')\
4285 .comment('(Optional) An appearance dictionary specifying the appearanc e of a pushbutton\nfield (see "Pushbuttons" on page 539). The appearance diction ary\'s contents are as\nshown in Table 8.13 on page 497, except that the values of the N, R, and D entries\nmust all be streams.')\
4286 .done().done()\
4287 .optional()\
4288 .field('APRef')\
4289 .name('APRef')\
4290 .type('dictionary')\
4291 .comment('(Optional; PDF 1.3) A dictionary holding references to exter nal PDF files contain-\ning the pages to use for the appearances of a pushbutton field. This dictionary is\nsimilar to an appearance dictionary (see Table 8.13 on page 497), except that the\nvalues of the N, R, and D entries must all be nam ed page reference dictionaries\n(Table 8.76 on page 568). This entry is ignored if an AP entry is present.')\
4292 .done().done()\
4293 .optional()\
4294 .field('IF')\
4295 .name('IF')\
4296 .type('dictionary')\
4297 .comment('(Optional; PDF 1.3; button fields only) An icon fit dictiona ry (see Table 8.73) speci-\nfying how to display a button field\'s icon within t he annotation rectangle of its wid-\nget annotation.')\
4298 .done().done()\
4299 .optional()\
4300 .field('Opt')\
4301 .name('Opt')\
4302 .type('array')\
4303 .comment('(Required; choice fields only) An array of options to be pre sented to the user. Each\nelement of the array can take either of two forms:\n* A text string representing one of the available options\n* A two-element array consisting of a text string representing one of the available\n options and a default appearance string for constructing the item\'s appearance\n dynamical ly at viewing time (see "Variable Text" on page 533)')\
4304 .done().done()\
4305 .optional()\
4306 .field('A')\
4307 .name('A')\
4308 .type('dictionary')\
4309 .comment('(Optional) An action to be performed when this field\'s widg et annotation is activat-\ned (see Section 8.5, "Actions").')\
4310 .done().done()\
4311 .optional()\
4312 .field('AA')\
4313 .name('AA')\
4314 .type('dictionary')\
4315 .comment('(Optional) An additional-actions dictionary defining the fie ld\'s behavior in re-\nsponse to various trigger events (see Section 8.5.2, "Tri gger Events").')\
4316 .done().done()\
4317 .done()
4318
4319 pdfspec.addClass('IconFitDictionary', 'Dictionary', 'Entries in an icon fit di ctionary')\
4320 .required('NULL')\
4321 .field('SW')\
4322 .name('SW')\
4323 .type('name')\
4324 .comment('(Required) The circumstances under which the icon should be scaled inside the annota-\ntion rectangle:\n A Always scale.\n B Sca le only when the icon is bigger than the annotation rectangle.\n S Scale o nly when the icon is smaller than the annotation rectangle.\n N Never scal e.\nDefault value: A.')\
4325 .done().done()\
4326 .required('NULL')\
4327 .field('S')\
4328 .name('S')\
4329 .type('name')\
4330 .comment('(Required) The type of scaling to use:\n A Anamorphic scaling: scale the icon to fill the annotation rectangle exactly, with-\n out regard to its original aspect ratio (ratio of width to height).\n P Proportional scaling: scale the icon to fit the width or height of the annotatio n\n rectangle while maintaining the icon\'s original aspect ratio. If th e required hori-\n zontal and vertical scaling factors are different, us e the smaller of the two, cen-\n tering the icon within the annotation r ectangle in the other dimension.\nDefault value: P.')\
4331 .done().done()\
4332 .required('NULL')\
4333 .field('A')\
4334 .name('A')\
4335 .type('array')\
4336 .comment('(Required) An array of two numbers between 0.0 and 1.0 indic ating the fraction of left-\nover space to allocate at the left and bottom of th e icon. A value of [0.0 0.0] positions the\nicon at the bottom-left corner of th e annotation rectangle; a value of [0.5 0.5] centers it\nwithin the rectangle. T his entry is used only if the icon is scaled proportionally. Default\nvalue: [0. 5 0.5].')\
4337 .done().done()\
4338 .done()
4339
4340 pdfspec.addClass('FDFPageDictionary', 'Dictionary', 'Entries in an FDF page di ctionary')\
4341 .required('NULL')\
4342 .field('Templates')\
4343 .name('Templates')\
4344 .type('array')\
4345 .comment('(Required) An array of FDF template dictionaries (see Table 8.75) describing the\nnamed pages that serve as templates on the page.')\
4346 .done().done()\
4347 .optional()\
4348 .field('Info')\
4349 .name('Info')\
4350 .type('dictionary')\
4351 .comment('(Optional) An FDF page information dictionary containing add itional informa-\ntion about the page. At the time of publication, no entries ha ve been defined for\nthis dictionary.')\
4352 .done().done()\
4353 .done()
4354
4355 pdfspec.addClass('FDFTemplateDictionary', 'Dictionary', 'Entries in an FDF tem plate dictionary')\
4356 .required('NULL')\
4357 .field('TRef')\
4358 .name('TRef')\
4359 .type('dictionary')\
4360 .comment('(Required) A named page reference dictionary (see Table 8.76 ) specifying the\nlocation of the template.')\
4361 .done().done()\
4362 .optional()\
4363 .field('Fields')\
4364 .name('Fields')\
4365 .type('array')\
4366 .comment('(Optional) An array of references to FDF field dictionaries (see Table 8.72 on\npage 564) describing the root fields to be imported (those w ith no ancestors in\nthe field hierarchy).')\
4367 .done().done()\
4368 .optional()\
4369 .field('Rename')\
4370 .name('Rename')\
4371 .type('boolean')\
4372 .comment('(Optional) A flag specifying whether fields imported from th e template may be\nrenamed in the event of name conflicts with existing fields; see below for further\ndiscussion. Default value: true.')\
4373 .done().done()\
4374 .done()
4375
4376 pdfspec.addClass('FDFNamedPageReferenceDictionary', 'Dictionary', 'Entries in an FDF named page reference dictionary')\
4377 .required('NULL')\
4378 .field('Name')\
4379 .name('Name')\
4380 .type('string')\
4381 .comment('(Required) The name of the referenced page.')\
4382 .done().done()\
4383 .optional()\
4384 .field('F')\
4385 .name('F')\
4386 .type('file specification')\
4387 .comment('(Optional) The file containing the named page. If this key i s absent, it is\nassumed that the page resides in the associated PDF file.')\
4388 .done().done()\
4389 .done()
4390
4391 pdfspec.addClass('FDFFileAnnotationDictionary', 'Dictionary', 'Additional entr y for annotation dictionaries in an FDF file')\
4392 .optional()\
4393 .field('Page')\
4394 .name('Page')\
4395 .type('integer')\
4396 .comment('(Required for annotations in FDF files) The ordinal page num ber on which\nthis annotation should appear, where page 0 is the first page.')\
4397 .done().done()\
4398 .done()
4399
4400 pdfspec.addClass('SoundObjectDictionary', 'Dictionary', 'Additional entries sp ecific to a sound object')\
4401 .optional()\
4402 .field('Type')\
4403 .name('Type')\
4404 .type('name')\
4405 .comment('(Optional) The type of PDF object that this dictionary descr ibes; if present, must be\nSound for a sound object.')\
4406 .done().done()\
4407 .required('NULL')\
4408 .field('R')\
4409 .name('R')\
4410 .type('number')\
4411 .comment('(Required) The sampling rate, in samples per second.')\
4412 .done().done()\
4413 .optional()\
4414 .field('C')\
4415 .name('C')\
4416 .type('integer')\
4417 .comment('(Optional) The number of sound channels. Default value: 1. ( See implementation\nnote 101 in Appendix H.)')\
4418 .done().done()\
4419 .optional()\
4420 .field('B')\
4421 .name('B')\
4422 .type('integer')\
4423 .comment('(Optional) The number of bits per sample value per channel. Default value: 8.')\
4424 .done().done()\
4425 .optional()\
4426 .field('E')\
4427 .name('E')\
4428 .type('name')\
4429 .comment('(Optional) The encoding format for the sample data:\n Raw Unspecified or unsigned values in the range 0 to 2B - 1\n Signed Twos-complement values\n muLaw mu-law\'encoded samples\n ALaw A-law\'encoded samples\nDefault value: Raw.')\
4430 .done().done()\
4431 .optional()\
4432 .field('CO')\
4433 .name('CO')\
4434 .type('name')\
4435 .comment('(Optional) The sound compression format used on the sample d ata. (Note that this is\nseparate from any stream compression specified by the s ound object\'s Filter entry; see\nTable 3.4 on page 38 and Section 3.3, "Filters .") If this entry is absent, then no sound\ncompression has been used; the data contains sampled waveforms to be played at R\nsamples per second per channel.')\
4436 .done().done()\
4437 .optional()\
4438 .field('CP')\
4439 .name('CP')\
4440 .type('(various)')\
4441 .comment('(Optional) Optional parameters specific to the sound compres sion format used.\nNote: At the time of publication, no standard values have bee n defined for the CO and CP\nentries.')\
4442 .done().done()\
4443 .done()
4444
4445 pdfspec.addClass('MovieDictionary', 'Dictionary', 'Entries in a movie dictiona ry')\
4446 .required('NULL')\
4447 .field('F')\
4448 .name('F')\
4449 .type('file specification')\
4450 .comment('(Required) A file specification identifying a self-describin g movie file.\nNote: The format of a "self-describing movie file" is left unspec ified, and there is\nno guarantee of portability.')\
4451 .done().done()\
4452 .optional()\
4453 .field('Aspect')\
4454 .name('Aspect')\
4455 .type('array')\
4456 .comment('(Optional) The width and height of the movie\'s bounding box , in pixels,\nspecified as [width height]. This entry should be omitted for a mo vie consist-\ning entirely of sound with no visible images.')\
4457 .done().done()\
4458 .optional()\
4459 .field('Rotate')\
4460 .name('Rotate')\
4461 .type('integer')\
4462 .comment('(Optional) The number of degrees by which the movie is rotat ed clockwise\nrelative to the page. The value must be a multiple of 90. Default value: 0.')\
4463 .done().done()\
4464 .optional()\
4465 .field('Poster')\
4466 .name('Poster')\
4467 .type('boolean or stream')\
4468 .comment('(Optional) A flag or stream specifying whether and how to di splay a poster\nimage representing the movie. If this value is a stream, it cont ains an image\nXObject (see Section 4.8, "Images") to be displayed as the poster ; if it is the\nboolean value true, the poster image should be retrieved from th e movie file\nitself; if it is false, no poster should be displayed. Default val ue: false.')\
4469 .done().done()\
4470 .done()
4471
4472 pdfspec.addClass('MovieActivationDictionary', 'Dictionary', 'Entries in a movi e activation dictionary')\
4473 .optional()\
4474 .field('Start')\
4475 .name('Start')\
4476 .type('(various)')\
4477 .comment('(Optional) The starting time of the movie segment to be play ed. Movie time\nvalues are expressed in units of time based on a time scale, whi ch defines the\nnumber of units per second; the default time scale is defined in the movie\ndata itself. The starting time is nominally a 64-bit integer, specif ied as follows:\n* If it is representable as an integer (subject to the impleme ntation limit for\n integers, as described in Appendix C), it should be specif ied as such.\n* If it is not representable as an integer, it should be specifie d as an 8-byte\n string representing a 64-bit twos-complement integer, most si gnificant\n byte first.\n* If it is expressed in a time scale different from that of the movie itself, it is\n represented as an array of two values: an in teger or string denoting the\n starting time, as above, followed by an integer specifying the time scale in\n units per second.\nIf this entry is omitted, t he movie is played from the beginning.')\
4478 .done().done()\
4479 .optional()\
4480 .field('Duration')\
4481 .name('Duration')\
4482 .type('(various)')\
4483 .comment('(Optional) The duration of the movie segment to be played, s pecified in the\nsame form as Start. Negative values specify that the movie is t o be played\nbackward. If this entry is omitted, the movie is played to the end. ')\
4484 .done().done()\
4485 .optional()\
4486 .field('Rate')\
4487 .name('Rate')\
4488 .type('number')\
4489 .comment('(Optional) The initial speed at which to play the movie. If the value of this\nentry is negative, the movie is played backward with respect to Start and\nDuration. Default value: 1.0.')\
4490 .done().done()\
4491 .optional()\
4492 .field('Volume')\
4493 .name('Volume')\
4494 .type('number')\
4495 .comment('(Optional) The initial sound volume at which to play the mov ie, in the range\n-1.0 to 1.0. Higher values denote greater volume; negative val ues mute the\nsound. Default value: 1.0.')\
4496 .done().done()\
4497 .optional()\
4498 .field('ShowControls')\
4499 .name('ShowControls')\
4500 .type('boolean')\
4501 .comment('(Optional) A flag specifying whether to display a movie cont roller bar while\nplaying the movie. Default value: false.')\
4502 .done().done()\
4503 .optional()\
4504 .field('Mode')\
4505 .name('Mode')\
4506 .type('name')\
4507 .comment('(Optional) The play mode for playing the movie:\n Once Play once and stop.\n Open Play and leave the movie c ontroller bar open.\n Repeat Play repeatedly from beginning to end until stopped.\n Palindrome Play continuously forward and backward un til stopped.\nDefault value: Once.')\
4508 .done().done()\
4509 .optional()\
4510 .field('Synchronous')\
4511 .name('Synchronous')\
4512 .type('boolean')\
4513 .comment('(Optional) A flag specifying whether to play the movie synch ronously or\nasynchronously. If this value is true, the movie player will retain control until\nthe movie is completed or dismissed by the user; if false, it wi ll return control\nto the viewer application immediately after starting the movi e. Default value:\nfalse.')\
4514 .done().done()\
4515 .optional()\
4516 .field('FWScale')\
4517 .name('FWScale')\
4518 .type('array')\
4519 .comment('(Optional) The magnification (zoom) factor at which to play the movie. The\npresence of this entry implies that the movie is to be played in a floating win-\ndow; if the entry is absent, it will be played in the annotati on rectangle.\nThe value of the entry is an array of two integers, [numerator de nominator],\ndenoting a rational magnification factor for the movie. The final w indow\nsize, in pixels, is\n (numerator / denominator) x Aspect\nwhere the va lue of Aspect is taken from the movie dictionary (see Table 8.79).')\
4520 .done().done()\
4521 .optional()\
4522 .field('FWPosition')\
4523 .name('FWPosition')\
4524 .type('array')\
4525 .comment('(Optional) For floating play windows, the relative position of the window on\nthe screen. The value is an array of two numbers\n [horiz v ert]\neach in the range 0.0 to 1.0, denoting the relative horizontal and vertica l posi-\ntion of the movie window with respect to the screen. For example, the v alue\n[0.5 0.5] centers the window on the screen. Default value: [0.5 0.5].\n CHAPTER 9')\
4526 .done().done()\
4527 .done()
4528
4529 pdfspec.addClass('DocumentInformationDictionary', 'Dictionary', 'Entries in th e document information dictionary')\
4530 .optional()\
4531 .field('Title')\
4532 .name('Title')\
4533 .type('text string')\
4534 .comment('(Optional; PDF 1.1) The document\'s title.')\
4535 .done().done()\
4536 .optional()\
4537 .field('Author')\
4538 .name('Author')\
4539 .type('text string')\
4540 .comment('(Optional) The name of the person who created the document.' )\
4541 .done().done()\
4542 .optional()\
4543 .field('Subject')\
4544 .name('Subject')\
4545 .type('text string')\
4546 .comment('(Optional; PDF 1.1) The subject of the document.')\
4547 .done().done()\
4548 .optional()\
4549 .field('Keywords')\
4550 .name('Keywords')\
4551 .type('text string')\
4552 .comment('(Optional; PDF 1.1) Keywords associated with the document.') \
4553 .done().done()\
4554 .optional()\
4555 .field('Creator')\
4556 .name('Creator')\
4557 .type('text string')\
4558 .comment('(Optional) If the document was converted to PDF from another format, the\nname of the application (for example, Adobe FrameMaker(R)) that cr eated the\noriginal document from which it was converted.')\
4559 .done().done()\
4560 .optional()\
4561 .field('Producer')\
4562 .name('Producer')\
4563 .type('text string')\
4564 .comment('(Optional) If the document was converted to PDF from another format, the\nname of the application (for example, Acrobat Distiller) that conv erted it to\nPDF.')\
4565 .done().done()\
4566 .optional()\
4567 .field('CreationDate')\
4568 .name('CreationDate')\
4569 .type('date')\
4570 .comment('(Optional) The date and time the document was created, in hu man-readable\nform (see Section 3.8.2, "Dates").')\
4571 .done().done()\
4572 .optional()\
4573 .field('ModDate')\
4574 .name('ModDate')\
4575 .type('date')\
4576 .comment('(Optional; PDF 1.1) The date and time the document was most recently\nmodified, in human-readable form (see Section 3.8.2, "Dates").')\
4577 .done().done()\
4578 .optional()\
4579 .field('Trapped')\
4580 .name('Trapped')\
4581 .type('name')\
4582 .comment('(Optional; PDF 1.3) A name object indicating whether the doc ument has\nbeen modified to include trapping information (see Section 9.10.5, "T rap-\nping Support"):\n True The document has been fully trapped; no f urther trapping is\n needed. (Note that this is the name True, no t the boolean\n value true.)\n False The document has no t yet been trapped; any desired trap-\n ping must still be done. (Note that this is the name False, not\n the boolean value false. )\n Unknown Either it is unknown whether the document has been\n trapped or it has been partly but not yet fully trapped; some\n additional trapping may still be needed.\nDefault value: Unknown.\nThe val ue of this entry may be set automatically by the software creating the\ndocument \'s trapping information or may be known only to a human opera-\ntor and entered manually.')\
4583 .done().done()\
4584 .done()
4585
4586 pdfspec.addClass('MetadataStreamDictionary', 'Dictionary', 'Additional entries in a metadata stream dictionary')\
4587 .required('NULL')\
4588 .field('Type')\
4589 .name('Type')\
4590 .type('name')\
4591 .comment('(Required) The type of PDF object that this dictionary descr ibes; must be Metadata\nfor a metadata stream.')\
4592 .done().done()\
4593 .required('NULL')\
4594 .field('Subtype')\
4595 .name('Subtype')\
4596 .type('name')\
4597 .comment('(Required) The type of metadata stream that this dictionary describes; must be\nXML.')\
4598 .done().done()\
4599 .done()
4600
4601 pdfspec.addClass('ComponentsWithMetadataDictionary', 'Dictionary', 'Additional entry for components having metadata')\
4602 .optional()\
4603 .field('Metadata')\
4604 .name('Metadata')\
4605 .type('stream')\
4606 .comment('(Optional; PDF 1.4) A metadata stream containing metadata fo r the component.')\
4607 .done().done()\
4608 .done()
4609
4610 pdfspec.addClass('PagePieceDictionary', 'Dictionary', 'Entries in a page-piece dictionary')\
4611 .optional()\
4612 .field('[any_application_name_or_well_known_data_type]')\
4613 .name('[any_application_name_or_well_known_data_type]')\
4614 .type('dictionary')\
4615 .comment('()An application data dictionary (see Table 9.7).')\
4616 .done().done()\
4617 .done()
4618
4619 pdfspec.addClass('ApplicationDataDictionary', 'Dictionary', 'Entries in an app lication data dictionary')\
4620 .required('NULL')\
4621 .field('LastModified')\
4622 .name('LastModified')\
4623 .type('date')\
4624 .comment('(Required) The date and time when the contents of the page o r form\nwere most recently modified by this application.')\
4625 .done().done()\
4626 .optional()\
4627 .field('Private')\
4628 .name('Private')\
4629 .type('(any)')\
4630 .comment('(Optional) Any private data appropriate to the application, typically\nin the form of a dictionary.')\
4631 .done().done()\
4632 .done()
4633
4634 pdfspec.addClass('StructureTreeRootDictionary', 'Dictionary', 'Entries in the structure tree root')\
4635 .required('NULL')\
4636 .field('Type')\
4637 .name('Type')\
4638 .type('name')\
4639 .comment('(Required) The type of PDF object that this dictionary descr ibes; must\nbe StructTreeRoot for a structure tree root.')\
4640 .done().done()\
4641 .optional()\
4642 .field('K')\
4643 .name('K')\
4644 .type('dictionary or array')\
4645 .comment('(Optional) The immediate child or children of the structure tree root in\nthe structure hierarchy. The value may be either a dictionary repr esent-\ning a single structure element or an array of such dictionaries.')\
4646 .done().done()\
4647 .optional()\
4648 .field('IDTree')\
4649 .name('IDTree')\
4650 .type('name tree')\
4651 .comment('(Required if any structure elements have element identifiers ) A name tree\nthat maps element identifiers (see Table 9.10) to the structure e lements\nthey denote.')\
4652 .done().done()\
4653 .optional()\
4654 .field('ParentTree')\
4655 .name('ParentTree')\
4656 .type('number tree')\
4657 .comment('(Required if any structure element contains PDF objects or m arked-content\nsequences as content items) A number tree (see Section 3.8.5, "Nu mber\nTrees") used in finding the structure elements to which content items\nbel ong. Each integer key in the number tree corresponds to a single page\nof the do cument or to an individual object (such as an annotation or an\nXObject) that is a content item in its own right. The integer key is given\nas the value of the StructParent or StructParents entry in that object (see\n"Finding Structure Elem ents from Content Items" on page 600). The\nform of the associated value depends on the nature of the object:\n* For an object that is a content item in its ow n right, the value is an in-\n direct reference to the object\'s parent elemen t (the structure element\n that contains it as a content item).\n* For a page object or content stream containing marked-content\n sequences that are conte nt items, the value is an array of references to\n the parent elements of thos e marked-content sequences.\nSee "Finding Structure Elements from Content Items" on page 600 for\nfurther discussion.')\
4658 .done().done()\
4659 .optional()\
4660 .field('ParentTreeNextKey')\
4661 .name('ParentTreeNextKey')\
4662 .type('integer')\
4663 .comment('(Optional) An integer greater than any key in the parent tre e, to be used\nas a key for the next entry added to the tree.')\
4664 .done().done()\
4665 .optional()\
4666 .field('RoleMap')\
4667 .name('RoleMap')\
4668 .type('dictionary')\
4669 .comment('(Optional) A dictionary mapping the names of structure types used in\nthe document to their approximate equivalents in the set of standard\n structure types (see Section 9.7.4, "Standard Structure Types").')\
4670 .done().done()\
4671 .optional()\
4672 .field('ClassMap')\
4673 .name('ClassMap')\
4674 .type('dictionary')\
4675 .comment('(Optional) A dictionary mapping name objects designating att ribute\nclasses to the corresponding attribute objects or arrays of attribute ob -\njects (see "Attribute Classes" on page 605).')\
4676 .done().done()\
4677 .done()
4678
4679 pdfspec.addClass('StructureElementDictionary', 'Dictionary', 'Entries in a str ucture element dictionary')\
4680 .optional()\
4681 .field('Type')\
4682 .name('Type')\
4683 .type('name')\
4684 .comment('(Optional) The type of PDF object that this dictionary descr ibes; if\npresent, must be StructElem for a structure element.')\
4685 .done().done()\
4686 .required('NULL')\
4687 .field('S')\
4688 .name('S')\
4689 .type('name')\
4690 .comment('(Required) The structure type, a name object identifying the nature of the\nstructure element and its role within the document, such as a ch apter,\nparagraph, or footnote (see Section 9.6.2, "Structure Types"). Names of\ nstructure types must conform to the guidelines described in Appendix E.')\
4691 .done().done()\
4692 .optional()\
4693 .field('P')\
4694 .name('P')\
4695 .type('dictionary')\
4696 .comment('(Required; must be an indirect reference) The structure elem ent that is the\nimmediate parent of this one in the structure hierarchy.')\
4697 .done().done()\
4698 .optional()\
4699 .field('ID')\
4700 .name('ID')\
4701 .type('string')\
4702 .comment('(Optional) The element identifier, a string designating this structure\nelement. The string must be unique among all elements in the docu-\n ment\'s structure hierarchy. The IDTree entry in the structure tree root\n(see T able 9.9) defines the correspondence between element identifiers\nand the struct ure elements they denote.')\
4703 .done().done()\
4704 .optional()\
4705 .field('Pg')\
4706 .name('Pg')\
4707 .type('dictionary')\
4708 .comment('(Optional; must be an indirect reference) A page object repr esenting a\npage on which some or all of the content items designated by the K e ntry\nare rendered.')\
4709 .done().done()\
4710 .optional()\
4711 .field('K')\
4712 .name('K')\
4713 .type('(various)')\
4714 .comment('(Optional) The contents of this structure element, which may consist of\none or more marked-content sequences, PDF objects, and other struc- \nture elements. The value of this entry may be any of the following:\n* An int eger marked-content identifier denoting a marked-content\n sequence\n* A mark ed-content reference dictionary denoting a marked-content\n sequence\n* An ob ject reference dictionary denoting a PDF object\n* A structure element dictiona ry denoting another structure element\n* An array, each of whose elements is on e of the objects listed above\nSee Section 9.6.3, "Structure Content" for furthe r discussion of each of\nthese forms of representation.')\
4715 .done().done()\
4716 .optional()\
4717 .field('A')\
4718 .name('A')\
4719 .type('(various)')\
4720 .comment('(Optional) The attribute object or objects, if any, associat ed with this\nstructure element. Each attribute object is either a dictionary or a\nstream; the value of this entry may be either a single attribute object or\n an array of such objects together with their revision numbers (see\nSection 9.6. 4, "Structure Attributes," and "Attribute Revision Numbers"\non page 606).')\
4721 .done().done()\
4722 .optional()\
4723 .field('C')\
4724 .name('C')\
4725 .type('name or array')\
4726 .comment('(Optional) The attribute class or classes, if any, to which this structure\nelement belongs. The value of this entry may be either a single class\nname or an array of class names together with their revision numbers\n(se e "Attribute Classes" on page 605 and "Attribute Revision Numbers"\non page 606) .\nNote: If both the A and C entries are present and a given attribute is speci- \nfied by both, the one specified by the A entry takes precedence.')\
4727 .done().done()\
4728 .optional()\
4729 .field('R')\
4730 .name('R')\
4731 .type('integer')\
4732 .comment('(Optional) The current revision number of this structure ele ment (see\n"Attribute Revision Numbers" on page 606). The value must be a non-\n negative integer. Default value: 0.')\
4733 .done().done()\
4734 .optional()\
4735 .field('T')\
4736 .name('T')\
4737 .type('text string')\
4738 .comment('(Optional) The title of the structure element, a text string representing it\nin human-readable form. The title should characterize the spec ific struc-\nture element, such as Chapter 1, rather than merely a generic eleme nt\ntype, such as Chapter.')\
4739 .done().done()\
4740 .optional()\
4741 .field('Lang')\
4742 .name('Lang')\
4743 .type('text string')\
4744 .comment('(Optional; PDF 1.4) A language identifier specifying the nat ural language\nfor all text in the structure element except where overridden by language\nspecifications for nested structure elements or marked content (see Se c-\ntion 9.8.1, "Natural Language Specification"). If this entry is absent, the\ nlanguage (if any) specified in the document catalog applies.')\
4745 .done().done()\
4746 .optional()\
4747 .field('Alt')\
4748 .name('Alt')\
4749 .type('text string')\
4750 .comment('(Optional) An alternate description of the structure element and its\nchildren in human-readable form, useful when extracting the docu-\nmen t\'s contents in support of accessibility to disabled users or for other\npurpos es (see Section 9.8.2, "Alternate Descriptions").')\
4751 .done().done()\
4752 .optional()\
4753 .field('ActualText')\
4754 .name('ActualText')\
4755 .type('text string')\
4756 .comment('(Optional; PDF 1.4) Text that is an exact replacement for th e structure\nelement and its children. This replacement text (which should apply to\nas small a piece of content as possible) is useful when extracting the doc- \nument\'s contents in support of accessibility to disabled users or for other\n purposes (see Section 9.8.3, "Replacement Text").')\
4757 .done().done()\
4758 .done()
4759
4760 pdfspec.addClass('MarkedContentReferenceDictionary', 'Dictionary', 'Entries in a marked-content reference dictionary')\
4761 .required('NULL')\
4762 .field('Type')\
4763 .name('Type')\
4764 .type('name')\
4765 .comment('(Required) The type of PDF object that this dictionary descr ibes; must be MCR\nfor a marked-content reference.')\
4766 .done().done()\
4767 .optional()\
4768 .field('Pg')\
4769 .name('Pg')\
4770 .type('dictionary')\
4771 .comment('(Optional; must be an indirect reference) The page object re presenting the page on\nwhich the graphics objects in the marked-content sequenc e are rendered. This\nentry overrides any Pg entry in the structure element cont aining the marked-\ncontent reference; it is required if the structure element h as no such entry.')\
4772 .done().done()\
4773 .optional()\
4774 .field('Stm')\
4775 .name('Stm')\
4776 .type('stream')\
4777 .comment('(Optional; must be an indirect reference) The content stream containing the\nmarked-content sequence. This entry is needed only if the marke d-content\nsequence resides in some other content stream associated with the pag e-for\nexample, in a form XObject (see Section 4.9, "Form XObjects") or an annot a-\ntion\'s appearance stream (Section 8.4.4, "Appearance Streams"). Default val ue:\nthe content stream of the page identified by Pg.')\
4778 .done().done()\
4779 .optional()\
4780 .field('StmOwn')\
4781 .name('StmOwn')\
4782 .type('(any)')\
4783 .comment('(Optional; must be an indirect reference) The PDF object own ing the stream\nidentified by Stm-for example, the annotation to which an appear ance stream\nbelongs.')\
4784 .done().done()\
4785 .required('NULL')\
4786 .field('MCID')\
4787 .name('MCID')\
4788 .type('integer')\
4789 .comment('(Required) The marked-content identifier of the marked-conte nt sequence with-\nin its content stream.')\
4790 .done().done()\
4791 .done()
4792
4793 pdfspec.addClass('ObjectReferenceDictionary', 'Dictionary', 'Entries in an obj ect reference dictionary')\
4794 .required('NULL')\
4795 .field('Type')\
4796 .name('Type')\
4797 .type('name')\
4798 .comment('(Required) The type of PDF object that this dictionary descr ibes; must be OBJR for an\nobject reference.')\
4799 .done().done()\
4800 .optional()\
4801 .field('Pg')\
4802 .name('Pg')\
4803 .type('dictionary')\
4804 .comment('(Optional; must be an indirect reference) The page object re presenting the page on\nwhich the object is rendered. This entry overrides any P g entry in the structure ele-\nment containing the object reference; it is requi red if the structure element has no such\nentry.')\
4805 .done().done()\
4806 .optional()\
4807 .field('Obj')\
4808 .name('Obj')\
4809 .type('(any)')\
4810 .comment('(Required; must be an indirect reference) The referenced obj ect.')\
4811 .done().done()\
4812 .done()
4813
4814 pdfspec.addClass('StructureElementAccessDictionary', 'Dictionary', 'Additional dictionary entries for structure element access')\
4815 .optional()\
4816 .field('StructParent')\
4817 .name('StructParent')\
4818 .type('integer')\
4819 .comment('(Required for all objects that are structural content items; PDF 1.3) The integer key\nof this object\'s entry in the structural parent tree .')\
4820 .done().done()\
4821 .optional()\
4822 .field('StructParents')\
4823 .name('StructParents')\
4824 .type('integer')\
4825 .comment('(Required for all content streams containing marked-content sequences that are\nstructural content items; PDF 1.3) The integer key of this o bject\'s entry in the\nstructural parent tree.\nNote: At most one of these two e ntries may be present in a given object. An object\ncan be either a content item in its entirety or a container for marked-content\nsequences that are content i tems, but not both.')\
4826 .done().done()\
4827 .done()
4828
4829 pdfspec.addClass('AttributeObjectDictionary', 'Dictionary', 'Entry common to a ll attribute objects')\
4830 .required('NULL')\
4831 .field('O')\
4832 .name('O')\
4833 .type('name')\
4834 .comment('(Required) The name of the application or plug-in extension owning the attribute data.\nThe name must conform to the guidelines described in Appendix E.')\
4835 .done().done()\
4836 .done()
4837
4838 pdfspec.addClass('MarkInformationDictionary', 'Dictionary', 'Entry in the mark information dictionary')\
4839 .optional()\
4840 .field('Marked')\
4841 .name('Marked')\
4842 .type('boolean')\
4843 .comment('(Optional) A flag indicating whether the document conforms t o Tagged PDF\nconventions. Default value: false.')\
4844 .done().done()\
4845 .done()
4846
4847 pdfspec.addClass('ArtifactsDictionary', 'Dictionary', 'Property list entries f or artifacts')\
4848 .optional()\
4849 .field('Type')\
4850 .name('Type')\
4851 .type('name')\
4852 .comment('(Optional) The type of artifact that this property list desc ribes; if present, must\nbe one of the names Pagination, Layout, or Page.')\
4853 .done().done()\
4854 .optional()\
4855 .field('BBox')\
4856 .name('BBox')\
4857 .type('rectangle')\
4858 .comment('(Optional) An array of four numbers in default user space un its giving the coor-\ndinates of the left, bottom, right, and top edges, respect ively, of the artifact\'s\nbounding box (the rectangle that completely encloses its visible extent).')\
4859 .done().done()\
4860 .optional()\
4861 .field('Attached')\
4862 .name('Attached')\
4863 .type('array')\
4864 .comment('(Optional; pagination artifacts only) An array of name objec ts containing one to\nfour of the names Top, Bottom, Left, and Right, specifying the edges of the page, if\nany, to which the artifact is logically attached. Pa ge edges are defined by the\npage\'s crop box (see Section 9.10.1, "Page Boundar ies"). The ordering of names\nwithin the array is immaterial. Including both Lef t and Right or both Top and\nBottom indicates a full-width or full-height artifa ct, respectively.')\
4865 .done().done()\
4866 .done()
4867
4868 pdfspec.addClass('StandardStructureDictionary', 'Dictionary', 'Standard layout attributes common to all standard structure types')\
4869 .optional()\
4870 .field('Placement')\
4871 .name('Placement')\
4872 .type('name')\
4873 .comment('(Optional) The positioning of the element with respect to th e enclosing refer-\nence area and other content:\n Block Stacked in th e block-progression direction within an enclos-\n ing reference area or parent BLSE.\n Inline Packed in the inline-progression directio n within an enclos-\n ing BLSE.\n Before Placed so that the before edge of the element\'s allocation rec-\n tangle (see "Content and Allocation Rectangles" on page\n 648) coincides wi th that of the nearest enclosing reference\n area. The element m ay float, if necessary, to achieve the speci-\n fied placement ( see note below). The element is treated as a\n block occupying t he full extent of the enclosing reference\n area in the inline d irection; other content is stacked so as to\n begin at the after edge of the element\'s allocation rectangle.\n Start Placed so that t he start edge of the element\'s allocation rec-\n tangle (see "C ontent and Allocation Rectangles" on page\n 648) coincides with that of the nearest enclosing reference\n area. The element may float, if necessary, to achieve the speci-\n fied placement (see note below). Other content that would\n intrude into the elemen t\'s allocation rectangle is laid out as a\n runaround.\n End Placed so that the end edge of the element\'s allocation rec-\n tangle (see "Content and Allocation Rectangles" on page\n 648) coincides with that of the nearest enclosing reference\n area. The element may float, if necessary, to achieve the speci-\n fied placement (see note below). Other content that would\n intrude into the element\'s allocation rectangle is laid out as a\n runaround.\nWhen applied to an ILSE, any value except Inline causes the ele ment to be\ntreated as a BLSE instead. Default value: Inline.\nNote: Elements wi th Placement values of Before, Start, or End are removed from\nthe normal stacki ng or packing process and allowed to "float" to the specified\nedge of the enclo sing reference area or parent BLSE. Multiple such floating ele-\nments may be po sitioned adjacent to one another against the specified edge of the\nreference ar ea, or placed serially against the edge, in the order encountered.\n Complex cases such as floating elements that interfere with each other or do not\n fit on the same page may be handled differently by different layout applications ;\n Tagged PDF merely identifies the elements as floating and indicates thei r desired\n placement.')\
4874 .done().done()\
4875 .optional()\
4876 .field('WritingMode')\
4877 .name('WritingMode')\
4878 .type('name')\
4879 .comment('(Optional) The directions of layout progression for packing of ILSEs (inline\nprogression) and stacking of BLSEs (block progression):\n L rTb Inline progression from left to right; block progression from\n top to bottom. This is the typical writing mode for Western\n writing systems.\n RlTb Inline progression from right to le ft; block progression from\n top to bottom. This is the typical writing mode for Arabic\n and Hebrew writing systems.\n TbRl Inline progression from top to bottom; block progression\n from right to left. This is the typical writing mode for Chi-\n nese and Japanese writing systems.\nThe specified layout directions apply to the given structure element and all of\nits descendants to any level of nesting. Default value: LrTb.\nFor elements that produce multiple columns, the writing m ode defines the\ndirection of column progression within the reference area: the inline direc-\ntion determines the stacking direction for columns and the defaul t flow\norder of text from column to column. For tables, the writing mode contro ls\nthe layout of rows and columns: table rows (structure type TR) are stacked\n in the block direction, cells within a row (structure type TD) in the inline\ndi rection.\nNote: The inline-progression direction specified by the writing mode i s subject to\nlocal override within the text being laid out, as described in Uni code Standard\nAnnex #9, The Bidirectional Algorithm, available from the Unicode Consor-\ntium (see the Bibliography).')\
4880 .done().done()\
4881 .done()
4882
4883 pdfspec.addClass('BlockLevelStructureElementsDictionary', 'Dictionary', 'Addit ional standard layout attributes specific to block-level structure elements')\
4884 .optional()\
4885 .field('SpaceBefore')\
4886 .name('SpaceBefore')\
4887 .type('number')\
4888 .comment('(Optional) The amount of extra space preceding the before ed ge of the BLSE,\nmeasured in default user space units in the block-progression d irection. This\nvalue is added to any adjustments induced by the LineHeight attr ibutes of\nILSEs within the first line of the BLSE (see "Layout Attributes for I LSEs" on\npage 646). If the preceding BLSE has a SpaceAfter attribute, the great er of the\ntwo attribute values is used. Default value: 0.\nNote: This attribute is disregarded for the first BLSE placed in a given reference\narea.')\
4889 .done().done()\
4890 .optional()\
4891 .field('SpaceAfter')\
4892 .name('SpaceAfter')\
4893 .type('number')\
4894 .comment('(Optional) The amount of extra space following the after edg e of the BLSE,\nmeasured in default user space units in the block-progression di rection. This\nvalue is added to any adjustments induced by the LineHeight attri butes of\nILSEs within the last line of the BLSE (see "Layout Attributes for ILS Es" on\npage 646). If the following BLSE has a SpaceBefore attribute, the greate r of\nthe two attribute values is used. Default value: 0.\nNote: This attribute is disregarded for the last BLSE placed in a given reference\narea.')\
4895 .done().done()\
4896 .optional()\
4897 .field('StartIndent')\
4898 .name('StartIndent')\
4899 .type('number')\
4900 .comment('(Optional) The distance from the start edge of the reference area to that of the\nBLSE, measured in default user space units in the inline-p rogression direc-\ntion. This attribute applies only to structure elements with a Placement\nattribute of Block or Start (see "General Layout Attributes" on pag e 640); it is\ndisregarded for those with other Placement values. Default value: 0.\nNote: A negative value for this attribute places the start edge of the BLSE out-\nside that of the reference area. The results are implementation-dependent and\nmay not be supported by all Tagged PDF consumer applications or export\nfo rmats.\nNote: If a structure element with a StartIndent attribute is placed adja cent to a\nfloating element with a Placement attribute of Start, the actual valu e used for\nthe element\'s starting indent will be its own StartIndent attribute or the inline\nextent of the adjacent floating element, whichever is greater. T his value may\nthen be further adjusted by the element\'s TextIndent attribute, if any.')\
4901 .done().done()\
4902 .optional()\
4903 .field('EndIndent')\
4904 .name('EndIndent')\
4905 .type('number')\
4906 .comment('(Optional) The distance from the end edge of the BLSE to tha t of the ref-\nerence area, measured in default user space units in the inline-p rogression\ndirection. This attribute applies only to structure elements with a Placement\nattribute of Block or End (see "General Layout Attributes" on page 64 0); it is\ndisregarded for those with other Placement values. Default value: 0.\ nNote: A negative value for this attribute places the end edge of the BLSE outsi de\nthat of the reference area. The results are implementation-dependent and may \nnot be supported by all Tagged PDF consumer applications or export formats.\nN ote: If a structure element with an EndIndent attribute is placed adjacent to a\ nfloating element with a Placement attribute of End, the actual value used for t he\nelement\'s ending indent will be its own EndIndent attribute or the inline e xtent\nof the adjacent floating element, whichever is greater.')\
4907 .done().done()\
4908 .optional()\
4909 .field('TextIndent')\
4910 .name('TextIndent')\
4911 .type('number')\
4912 .comment('(Optional; applies only to some BLSEs, as described below) T he additional\ndistance, measured in default user space units in the inline-prog ression\ndirection, from the start edge of the BLSE, as specified by StartIndent \n(above), to that of the first line of text. A negative value indicates a hangi ng\nindent. Default value: 0.\nThis attribute applies only to paragraphlike BLSE s and those of structure\ntypes Lbl (Label), LBody (List body), TH (Table header ), and TD (Table data),\nprovided that they contain content other than nested BL SEs.')\
4913 .done().done()\
4914 .optional()\
4915 .field('TextAlign')\
4916 .name('TextAlign')\
4917 .type('name')\
4918 .comment('(Optional; applies only to BLSEs containing text) The alignm ent, in the inline-\nprogression direction, of text and other content within lin es of the BLSE:\nStart Aligned with the start edge.\nCenter Centere d between the start and end edges.\nEnd Aligned with the end edge.\nJus tify Aligned with both the start and end edges, with internal\n spac ing within each line expanded, if necessary, to achieve\n such alignment. The last (or only) line is aligned with the\n start edge only, as for St art (above).\n Default value: Start.')\
4919 .done().done()\
4920 .optional()\
4921 .field('BBox')\
4922 .name('BBox')\
4923 .type('rectangle')\
4924 .comment('(Illustrations and tables only; required if the element appe ars in its entirety on a\nsingle page) An array of four numbers in default user space units giving the\ncoordinates of the left, bottom, right, and top edges, r espectively, of the ele-\nment\'s bounding box (the rectangle that completely en closes its visible con-\ntent). This attribute applies only to elements of struc ture type Figure,\nFormula, Form, or Table.')\
4925 .done().done()\
4926 .optional()\
4927 .field('Width')\
4928 .name('Width')\
4929 .type('number or name')\
4930 .comment('(Optional; illustrations, tables, table headers, and table c ells only; strongly\nrecommended for table cells) The desired width of the eleme nt\'s content\nrectangle (see "Content and Allocation Rectangles" on page 648), measured\nin default user space units in the inline-progression direction. This attribute\napplies only to elements of structure type Figure, Formula, Form, Tab le, TH\n(Table header), or TD (Table data).\nThe name Auto in place of a numeric value indicates that no specific width\nconstraint is to be imposed; the elemen t\'s width is determined by the intrin-\nsic width of its content. Default value : Auto.')\
4931 .done().done()\
4932 .optional()\
4933 .field('Height')\
4934 .name('Height')\
4935 .type('number or name')\
4936 .comment('(Optional; illustrations, tables, table headers, and table c ells only) The desired\nheight of the element\'s content rectangle (see "Content and Allocation\nRectangles" on page 648), measured in default user space units in the block-\nprogression direction. This attribute applies only to elements of structure\ntype Figure, Formula, Form, Table, TH (Table header), or TD (Table d ata).\nThe name Auto in place of a numeric value indicates that no specific heig ht\nconstraint is to be imposed; the element\'s height is determined by the intr in-\nsic height of its content. Default value: Auto.')\
4937 .done().done()\
4938 .optional()\
4939 .field('BlockAlign')\
4940 .name('BlockAlign')\
4941 .type('name')\
4942 .comment('(Optional; table cells only) The alignment, in the block-pro gression direction,\nof content within the table cell:\n Before Befor e edge of the first child\'s allocation rectangle aligned\n wi th that of the table cell\'s content rectangle.\n Middle Children cen tered within the table cell, so that the distance\n between th e before edge of the first child\'s allocation rec-\n tangle a nd that of the table cell\'s content rectangle is the same\n a s the distance between the after edge of the last child\'s allo-\n cation rectangle and that of the table cell\'s content rectangle.\n Aft er After edge of the last child\'s allocation rectangle aligned with\n that of the table cell\'s content rectangle.\n Justify Children aligned with both the before and after edges of the\n table cell\'s content rectangle. The first child is placed as\n described above for Before and the last child as described for\n After, with equal spacing between the children. If there is only\n one child, it is aligned with the before edge only, as for Before.\ n This attribute applies only to elements of structure type TH (Table header) or \n TD (Table data), and controls the placement of all BLSEs that are children of \n the given element. The table cell\'s content rectangle (see "Content and Allo -\n cation Rectangles" on page 648) becomes the reference area for all of its\n descendants. Default value: Before.')\
4943 .done().done()\
4944 .optional()\
4945 .field('InlineAlign')\
4946 .name('InlineAlign')\
4947 .type('name')\
4948 .comment('(Optional; table cells only) The alignment, in the inline-pr ogression direction,\nof content within the table cell:\n Start Start edge of each child\'s allocation rectangle aligned with\n that o f the table cell\'s content rectangle\n Center Each child centered with in the table cell, so that the distance\n between the start edge s of the child\'s allocation rectangle and\n the table cell\'s c ontent rectangle is the same as the distance\n between their end edges\n End End edge of each child\'s allocation rectangle aligned with\n that of the table cell\'s content rectangle\nThis attribu te applies only to elements of structure type TH (Table header) or\nTD (Table da ta), and controls the placement of all BLSEs that are children of\nthe given ele ment. The table cell\'s content rectangle (see "Content and Allo-\ncation Rectan gles" on page 648) becomes the reference area for all of its\ndescendants. Defau lt value: Start.')\
4949 .done().done()\
4950 .done()
4951
4952 pdfspec.addClass('InlineLevelStructureElementsDictionary', 'Dictionary', 'Stan dard layout attributes specific to inline-level structure elements')\
4953 .optional()\
4954 .field('LineHeight')\
4955 .name('LineHeight')\
4956 .type('number or name')\
4957 .comment('(Optional) The element\'s preferred height, measured in defa ult user space\nunits in the block-progression direction. The height of a line i s deter-\nmined by the largest LineHeight value for any complete or partial ILSE \nthat it contains.\nThe name Normal or Auto in place of a numeric value indicat es that no\nspecific height constraint is to be imposed; the element\'s height i s set to a\nreasonable value based on the content\'s font size:\n Normal Adjust the line height to include any nonzero value\n spec ified for BaselineShift (see below).\n Auto Do not adjust for the v alue of BaselineShift.\nDefault value: Normal.')\
4958 .done().done()\
4959 .done()
4960
4961 pdfspec.addClass('ListAttributeDictionary', 'Dictionary', 'Standard list attri bute')\
4962 .optional()\
4963 .field('ListNumbering')\
4964 .name('ListNumbering')\
4965 .type('name')\
4966 .comment('(Optional) The numbering system used to generate the content of the Lbl (Label)\nelements in an autonumbered list, or the symbol used to ide ntify each item in an\nunnumbered list:\n None No autonumbering; Lbl elements (if present) contain arbi-\n trary text not s ubject to any numbering scheme\n Disc Solid circular bullet\n Circle Open circular bullet\n Square Solid square bull et\n Decimal Decimal arabic numerals (1\'9, 10\'99, ...)\n Upper Roman Uppercase roman numerals (I, II, III, IV, ...)\n LowerRoman Lowercase roman numerals (i, ii, iii, iv, ...)\n UpperAlpha Upperca se letters (A, B, C, ...)\n LowerAlpha Lowercase letters (a, b, c, ... )\nDefault value: None.\nNote: The alphabet used for UpperAlpha and LowerAlpha i s determined by the pre-\nvailing Lang entry (see Section 9.8.1, "Natural Langua ge Specification").\nNote: The set of possible values may be expanded as Unicode identifies additional\nnumbering systems.')\
4967 .done().done()\
4968 .done()
4969
4970 pdfspec.addClass('TableAttributesDictionary', 'Dictionary', 'Standard table at tributes')\
4971 .optional()\
4972 .field('RowSpan')\
4973 .name('RowSpan')\
4974 .type('integer')\
4975 .comment('(Optional) The number of rows in the enclosing table that ar e spanned by the\ncell. The cell expands by adding rows in the block-progression direction speci-\nfied by the table\'s WritingMode attribute. Default value: 1. ')\
4976 .done().done()\
4977 .optional()\
4978 .field('ColSpan')\
4979 .name('ColSpan')\
4980 .type('integer')\
4981 .comment('(Optional) The number of columns in the enclosing table that are spanned by\nthe cell. The cell expands by adding columns in the inline-prog ression direction\nspecified by the table\'s WritingMode attribute. Default valu e: 1.')\
4982 .done().done()\
4983 .done()
4984
4985 pdfspec.addClass('WebCaptureInformationDictionary', 'Dictionary', 'Entries in the Web Capture information dictionary')\
4986 .required('NULL')\
4987 .field('V')\
4988 .name('V')\
4989 .type('number')\
4990 .comment('(Required) The Web Capture version number. For PDF 1.3, the version number is 1.0.\nNote: This value is a single real number, not a major an d minor version number. Thus, for\nexample, a version number of 1.2 would be con sidered greater than 1.15.')\
4991 .done().done()\
4992 .optional()\
4993 .field('C')\
4994 .name('C')\
4995 .type('array')\
4996 .comment('(Optional) An array of indirect references to Web Capture co mmand dictionaries (see\n"Command Dictionaries" on page 672) describing commands that were used in building\nthe PDF file. The commands appear in the array in t he order in which they were executed\nin building the file.')\
4997 .done().done()\
4998 .done()
4999
5000 pdfspec.addClass('WebCaptureDictionary', 'Dictionary', 'Entries common to all Web Capture content sets')\
5001 .optional()\
5002 .field('Type')\
5003 .name('Type')\
5004 .type('name')\
5005 .comment('(Optional) The type of PDF object that this dictionary descr ibes; if present, must be\nSpiderContentSet for a Web Capture content set.')\
5006 .done().done()\
5007 .required('NULL')\
5008 .field('S')\
5009 .name('S')\
5010 .type('name')\
5011 .comment('(Required) The subtype of content set that this dictionary d escribes:\n SPS ("Spider page set") A page set\n SIS ("Spider image set") An image set')\
5012 .done().done()\
5013 .required('NULL')\
5014 .field('ID')\
5015 .name('ID')\
5016 .type('string')\
5017 .comment('(Required) The digital identifier of the content set (see "D igital Identifiers" on page\n664). If the content set has been located via the U RLS name tree, this allows its related\nentry in the IDS name tree to be found.' )\
5018 .done().done()\
5019 .required('NULL')\
5020 .field('O')\
5021 .name('O')\
5022 .type('array')\
5023 .comment('(Required) An array of indirect references to the objects be longing to the content set.\nThe order of objects in the array is undefined in g eneral, but may be restricted by spe-\ncific content set subtypes.')\
5024 .done().done()\
5025 .required('NULL')\
5026 .field('SI')\
5027 .name('SI')\
5028 .type('dictionary or array')\
5029 .comment('(Required) A source information dictionary (see Section 9.9. 4, "Source Information"),\nor an array of such dictionaries, describing the sour ces from which the objects belong-\ning to the content set were created.')\
5030 .done().done()\
5031 .optional()\
5032 .field('CT')\
5033 .name('CT')\
5034 .type('string')\
5035 .comment('(Optional) The content type, a string characterizing the sou rce from which the objects\nbelonging to the content set were created. The strin g should conform to the content\ntype specification described in Internet RFC 20 45, Multipurpose Internet Mail Exten-\nsions (MIME) Part One: Format of Internet Message Bodies (see the Bibliography). For\nexample, for a page set consisting of a group of PDF pages created from an HTML file,\nthe content type would be te xt/html.')\
5036 .done().done()\
5037 .optional()\
5038 .field('TS')\
5039 .name('TS')\
5040 .type('date')\
5041 .comment('(Optional) A time stamp giving the date and time at which th e content set was created.')\
5042 .done().done()\
5043 .done()
5044
5045 pdfspec.addClass('WebCapturePageSetDictionary', 'Dictionary', 'Additional entr ies specific to a Web Capture page set')\
5046 .required('NULL')\
5047 .field('S')\
5048 .name('S')\
5049 .type('name')\
5050 .comment('(Required) The subtype of content set that this dictionary d escribes; must be SPS\n("Spider page set") for a page set.')\
5051 .done().done()\
5052 .optional()\
5053 .field('T')\
5054 .name('T')\
5055 .type('text string')\
5056 .comment('(Optional) The title of the page set, a text string represen ting it in human-readable\nform.')\
5057 .done().done()\
5058 .optional()\
5059 .field('TID')\
5060 .name('TID')\
5061 .type('string')\
5062 .comment('(Optional) A text identifier generated from the text of the page set, as described in\n"Digital Identifiers" on page 664.')\
5063 .done().done()\
5064 .done()
5065
5066 pdfspec.addClass('WebCaptureImageSetDictionary', 'Dictionary', 'Additional ent ries specific to a Web Capture image set')\
5067 .required('NULL')\
5068 .field('S')\
5069 .name('S')\
5070 .type('name')\
5071 .comment('(Required) The subtype of content set that this dictionary d escribes; must be SIS ("Spider\nimage set") for an image set.')\
5072 .done().done()\
5073 .required('NULL')\
5074 .field('R')\
5075 .name('R')\
5076 .type('integer or array')\
5077 .comment('(Required) The reference counts (see below) for the image XO bjects belonging to the\nimage set. For an image set containing a single XObject , the value is simply the integer\nreference count for that XObject. If the imag e set contains multiple XObjects, the value is\nan array of reference counts par allel to the O array (see Table 9.33 on page 668); that is,\neach element in the R array holds the reference count for the image XObject at the corre-\nsponding position in the O array.')\
5078 .done().done()\
5079 .done()
5080
5081 pdfspec.addClass('SourceInformationDictionary', 'Dictionary', 'Entries in a so urce information dictionary')\
5082 .required('NULL')\
5083 .field('AU')\
5084 .name('AU')\
5085 .type('string or dictionary')\
5086 .comment('(Required) A string or URL alias dictionary (see "URL Alias Dictionaries," below)\nidentifying the URLs from which the source data was retri eved.')\
5087 .done().done()\
5088 .optional()\
5089 .field('TS')\
5090 .name('TS')\
5091 .type('date')\
5092 .comment('(Optional) A time stamp giving the most recent date and time at which the content\nset\'s contents were known to be up to date with the sour ce data.')\
5093 .done().done()\
5094 .optional()\
5095 .field('E')\
5096 .name('E')\
5097 .type('date')\
5098 .comment('(Optional) An expiration stamp giving the date and time at w hich the content set\'s\ncontents should be considered out of date with the sour ce data.')\
5099 .done().done()\
5100 .optional()\
5101 .field('S')\
5102 .name('S')\
5103 .type('integer')\
5104 .comment('(Optional) A code indicating the type of form submission, if any, by which the source\ndata was accessed (see "Submit-Form Actions" on page 550):\n 0 Not accessed via a form submission\n 1 Accessed via an HTT P GET request\n 2 Accessed via an HTTP POST request\nThis entry should be present only in source information dictionaries associated with\npage sets. Defa ult value: 0.')\
5105 .done().done()\
5106 .optional()\
5107 .field('C')\
5108 .name('C')\
5109 .type('dictionary')\
5110 .comment('(Optional; must be an indirect reference) A command dictiona ry (see "Command Dic-\ntionaries" on page 672) describing the command that cause d the source data to be\nretrieved. This entry should be present only in source information dictionaries associ-\nated with page sets.')\
5111 .done().done()\
5112 .done()
5113
5114 pdfspec.addClass('URLAliasDictionary', 'Dictionary', 'Entries in a URL alias d ictionary')\
5115 .required('NULL')\
5116 .field('U')\
5117 .name('U')\
5118 .type('string')\
5119 .comment('(Required) The destination URL to which all of the chains sp ecified by the C entry lead.')\
5120 .done().done()\
5121 .optional()\
5122 .field('C')\
5123 .name('C')\
5124 .type('array')\
5125 .comment('(Optional) An array of one or more arrays of strings, each r epresenting a chain of URLs\nleading to the common destination specified by U.') \
5126 .done().done()\
5127 .done()
5128
5129 pdfspec.addClass('WebCaptureCommandDictionary', 'Dictionary', 'Entries in a We b Capture command dictionary')\
5130 .required('NULL')\
5131 .field('URL')\
5132 .name('URL')\
5133 .type('string')\
5134 .comment('(Required) The initial URL from which source data was reques ted.')\
5135 .done().done()\
5136 .optional()\
5137 .field('L')\
5138 .name('L')\
5139 .type('integer')\
5140 .comment('(Optional) The number of levels of pages retrieved from the initial URL. Default\nvalue: 1.')\
5141 .done().done()\
5142 .optional()\
5143 .field('F')\
5144 .name('F')\
5145 .type('integer')\
5146 .comment('(Optional) A set of flags specifying various characteristics of the command (see\nTable 9.39). Default value: 0.')\
5147 .done().done()\
5148 .optional()\
5149 .field('P')\
5150 .name('P')\
5151 .type('string or stream')\
5152 .comment('(Optional) Data that was posted to the URL.')\
5153 .done().done()\
5154 .optional()\
5155 .field('CT')\
5156 .name('CT')\
5157 .type('string')\
5158 .comment('(Optional) A content type describing the data posted to the URL. Default value:\napplication/x-www-form-urlencoded.')\
5159 .done().done()\
5160 .optional()\
5161 .field('H')\
5162 .name('H')\
5163 .type('string')\
5164 .comment('(Optional) Additional HTTP request headers sent to the URL.' )\
5165 .done().done()\
5166 .optional()\
5167 .field('S')\
5168 .name('S')\
5169 .type('dictionary')\
5170 .comment('(Optional) A command settings dictionary containing settings used in the con-\nversion process (see "Command Settings" on page 674).')\
5171 .done().done()\
5172 .done()
5173
5174 pdfspec.addClass('WebCaptureCommandSettingsDictionary', 'Dictionary', 'Entries in a Web Capture command settings dictionary')\
5175 .optional()\
5176 .field('G')\
5177 .name('G')\
5178 .type('dictionary')\
5179 .comment('(Optional) A dictionary containing global conversion engine settings relevant to all con-\nversion engines. If this key is absent, default s ettings will be used.')\
5180 .done().done()\
5181 .optional()\
5182 .field('C')\
5183 .name('C')\
5184 .type('dictionary')\
5185 .comment('(Optional) Settings for specific conversion engines. Each ke y in this dictionary is the\ninternal name of a conversion engine (see below). T he associated value is a dictionary\ncontaining the settings associated with tha t conversion engine. If the settings for a par-\nticular conversion engine are n ot found in the dictionary, default settings will be used.')\
5186 .done().done()\
5187 .done()
5188
5189 pdfspec.addClass('BoxColorInformationDictionary', 'Dictionary', 'Entries in a box color information dictionary')\
5190 .optional()\
5191 .field('CropBox')\
5192 .name('CropBox')\
5193 .type('dictionary')\
5194 .comment('(Optional) A box style dictionary (see Table 9.42) specifyin g the visual characteris-\ntics for displaying guidelines for the page\'s crop b ox. This entry is ignored if no crop\nbox is defined in the page object.')\
5195 .done().done()\
5196 .optional()\
5197 .field('BleedBox')\
5198 .name('BleedBox')\
5199 .type('dictionary')\
5200 .comment('(Optional) A box style dictionary (see Table 9.42) specifyin g the visual characteris-\ntics for displaying guidelines for the page\'s bleed box. This entry is ignored if no\nbleed box is defined in the page object.')\
5201 .done().done()\
5202 .optional()\
5203 .field('TrimBox')\
5204 .name('TrimBox')\
5205 .type('dictionary')\
5206 .comment('(Optional) A box style dictionary (see Table 9.42) specifyin g the visual characteris-\ntics for displaying guidelines for the page\'s trim b ox. This entry is ignored if no trim\nbox is defined in the page object.')\
5207 .done().done()\
5208 .optional()\
5209 .field('ArtBox')\
5210 .name('ArtBox')\
5211 .type('dictionary')\
5212 .comment('(Optional) A box style dictionary (see Table 9.42) specifyin g the visual characteris-\ntics for displaying guidelines for the page\'s art bo x. This entry is ignored if no art\nbox is defined in the page object.')\
5213 .done().done()\
5214 .done()
5215
5216 pdfspec.addClass('BoxStyleDictionary', 'Dictionary', 'Entries in a box style d ictionary')\
5217 .required('NULL')\
5218 .field('C')\
5219 .name('C')\
5220 .type('array')\
5221 .comment('(Required) An array of three numbers in the range 0.0 to 1.0 , representing the com-\nponents in the DeviceRGB color space of the color to be used for displaying the\nguidelines. Default value: [0.0 0.0 0.0].')\
5222 .done().done()\
5223 .optional()\
5224 .field('W')\
5225 .name('W')\
5226 .type('number')\
5227 .comment('(Optional) The guideline width in default user space units. Default value: 1.')\
5228 .done().done()\
5229 .optional()\
5230 .field('S')\
5231 .name('S')\
5232 .type('name')\
5233 .comment('(Optional) The guideline style:\n S (Solid) A solid re ctangle.\n D (Dashed) A dashed rectangle. The dash pattern is specified by the D entry\n (see below).\nOther guideline styles may be defined in th e future. Default value: S.')\
5234 .done().done()\
5235 .optional()\
5236 .field('D')\
5237 .name('D')\
5238 .type('array')\
5239 .comment('(Optional) A dash array defining a pattern of dashes and gap s to be used in drawing\ndashed guidelines (guideline style D above). The dash a rray is specified in default\nuser space units, in the same format as in the lin e dash pattern parameter of the\ngraphics state (see "Line Dash Pattern" on page 155). The dash phase is not speci-\nfied and is assumed to be 0. For example, a D entry of [3 2] specifies guidelines\ndrawn with 3-point dashes alternating wi th 2-point gaps. Default value: [3].')\
5240 .done().done()\
5241 .done()
5242
5243 pdfspec.addClass('PrinterMarkAnnotationDictionary', 'Dictionary', 'Additional entries specific to a printer\'s mark annotation')\
5244 .required('NULL')\
5245 .field('Subtype')\
5246 .name('Subtype')\
5247 .type('name')\
5248 .comment('(Required) The type of annotation that this dictionary descr ibes; must be Printer-\nMark for a printer\'s mark annotation.')\
5249 .done().done()\
5250 .optional()\
5251 .field('MN')\
5252 .name('MN')\
5253 .type('name')\
5254 .comment('(Optional) An arbitrary name identifying the type of printer \'s mark, such as Color-\nBar or RegistrationTarget.')\
5255 .done().done()\
5256 .done()
5257
5258 pdfspec.addClass('PrinterMarkFormDictionary', 'Dictionary', 'Additional entrie s specific to a printer\'s mark form dictionary')\
5259 .optional()\
5260 .field('MarkStyle')\
5261 .name('MarkStyle')\
5262 .type('text string')\
5263 .comment('(Optional; PDF 1.4) A text string representing the printer\' s mark in\nhuman-readable form, suitable for presentation to the user on the scr een.')\
5264 .done().done()\
5265 .optional()\
5266 .field('Colorants')\
5267 .name('Colorants')\
5268 .type('dictionary')\
5269 .comment('(Optional; PDF 1.4) A dictionary identifying the individual colorants\nassociated with a printer\'s mark such as a color bar. For each entry in this\ndictionary, the key is a colorant name and the value is an array defin ing a\nSeparation color space for that colorant (see "Separation Color Spaces"\n on page 201). The key must match the colorant name given in that color\nspace.') \
5270 .done().done()\
5271 .done()
5272
5273 pdfspec.addClass('SeparationDictionary', 'Dictionary', 'Entries in a separatio n dictionary')\
5274 .required('NULL')\
5275 .field('Pages')\
5276 .name('Pages')\
5277 .type('array')\
5278 .comment('(Required) An array of indirect references to page objects r epresenting separa-\ntions of the same document page. One of the page objects in the array must be\nthe one with which this separation dictionary is associated, and all of them must\nhave separation dictionaries (SeparationInfo entries) con taining Pages arrays\nidentical to this one.')\
5279 .done().done()\
5280 .required('NULL')\
5281 .field('DeviceColorant')\
5282 .name('DeviceColorant')\
5283 .type('name or string')\
5284 .comment('(Required) The name of the device colorant to be used in ren dering this\nseparation, such as Cyan or PANTONE 35 CV.')\
5285 .done().done()\
5286 .optional()\
5287 .field('ColorSpace')\
5288 .name('ColorSpace')\
5289 .type('array')\
5290 .comment('(Optional) An array defining a Separation or DeviceN color s pace (see "Separa-\ntion Color Spaces" on page 201 and "DeviceN Color Spaces" on page 205). This\nprovides additional information about the color specified by D eviceColorant-\nin particular, the alternate color space and tint transformation function that\nwould be used to represent the colorant as a process color. This information\nenables a viewer application to preview the separation in a color that approxi-\nmates the device colorant.\nThe value of DeviceColorant must matc h the space\'s colorant name (if it is a\nSeparation space) or be one of the spa ce\'s colorant names (if it is a DeviceN\nspace).')\
5291 .done().done()\
5292 .done()
5293
5294 pdfspec.addClass('PDF_XOutputIntentDictionary', 'Dictionary', 'Entries in a PD F/X output intent dictionary')\
5295 .optional()\
5296 .field('Type')\
5297 .name('Type')\
5298 .type('name')\
5299 .comment('(Optional) The type of PDF object that this dictionary descr ibes;\nif present, must be OutputIntent for an output intent dictionary.')\
5300 .done().done()\
5301 .required('NULL')\
5302 .field('S')\
5303 .name('S')\
5304 .type('name')\
5305 .comment('(Required) The output intent subtype; must be GTS_PDFX for a \nPDF/X output intent.')\
5306 .done().done()\
5307 .optional()\
5308 .field('OutputCondition')\
5309 .name('OutputCondition')\
5310 .type('text string')\
5311 .comment('(Optional) A text string concisely identifying the intended out-\nput device or production condition in human-readable form.\nThis is the pr eferred method of defining such a string for pre-\nsentation to the user.')\
5312 .done().done()\
5313 .required('NULL')\
5314 .field('OutputConditionIdentifier')\
5315 .name('OutputConditionIdentifier')\
5316 .type('string')\
5317 .comment('(Required) A string identifying the intended output device o r\nproduction condition in human- or machine-readable form. If\nhuman-readable, this string may be used in lieu of an Output-\nCondition string for presentation to the user.\nA typical value for this entry would be the name of a production\ ncondition maintained in an industry-standard registry such as\nthe ICC Characte rization Data Registry (see the Bibliography). If\nthe designated condition matc hes that in effect at production\ntime, it is the responsibility of the producti on software to pro-\nvide the corresponding ICC profile as defined in the regist ry.\nIf the intended production condition is not a recognized\nstandard, the val ue Custom is recommended for this entry; the\nDestOutputProfile entry defines th e ICC profile and the Info\nentry is used for further human-readable identificat ion.')\
5318 .done().done()\
5319 .optional()\
5320 .field('RegistryName')\
5321 .name('RegistryName')\
5322 .type('string')\
5323 .comment('(Optional) A string (conventionally a uniform resource ident ifi-\ner, or URI) identifying the registry in which the condition desig-\nnated by OutputConditionIdentifier is defined.')\
5324 .done().done()\
5325 .optional()\
5326 .field('Info')\
5327 .name('Info')\
5328 .type('text string')\
5329 .comment('(Required if OutputConditionIdentifier does not specify a st andard\nproduction condition; optional otherwise) A human-readable text\nstring containing additional information or comments about\nthe intended target device or production condition.')\
5330 .done().done()\
5331 .optional()\
5332 .field('DestOutputProfile')\
5333 .name('DestOutputProfile')\
5334 .type('stream')\
5335 .comment('(Required if OutputConditionIdentifier does not specify a st andard\nproduction condition; optional otherwise) An ICC profile stream\ndefinin g the transformation from the PDF document\'s source\ncolors to output device co lorants.\nThe format of the profile stream is the same as that used in speci-\nf ying an ICCBased color space (see "ICCBased Color Spaces" on\npage 189). The out put transformation uses the profile\'s "from\nCIE" information (BToA in ICC term inology); the "to CIE"\n(AToB) information can optionally be used to remap sourc e\ncolor values to some other destination color space, such as for\nscreen previ ew or hardcopy proofing. (See implementation note\n111 in Appendix H.)')\
5336 .done().done()\
5337 .done()
5338
5339 pdfspec.addClass('TrapNetworkAnnotationDictionary', 'Dictionary', 'Additional entries specific to a trap network annotation')\
5340 .required('NULL')\
5341 .field('Subtype')\
5342 .name('Subtype')\
5343 .type('name')\
5344 .comment('(Required) The type of annotation that this dictionary descr ibes; must be\nTrapNet for a trap network annotation.')\
5345 .done().done()\
5346 .optional()\
5347 .field('Contents')\
5348 .name('Contents')\
5349 .type('text string')\
5350 .comment('(Optional; PDF 1.4) An alternate description of the annotati on\'s contents in\nhuman-readable form, useful when extracting the document\'s c ontents in\nsupport of accessibility to disabled users or for other purposes (se e Section\n9.8.2, "Alternate Descriptions").')\
5351 .done().done()\
5352 .optional()\
5353 .field('LastModified')\
5354 .name('LastModified')\
5355 .type('date')\
5356 .comment('(Required if Version and AnnotStates are absent; must be abs ent if Version and\nAnnotStates are present; PDF 1.4) The date and time (see Sec tion 3.8.2,\n"Dates") when the trap network was most recently modified.')\
5357 .done().done()\
5358 .optional()\
5359 .field('Version')\
5360 .name('Version')\
5361 .type('array')\
5362 .comment('(Required if AnnotStates is present; must be absent if LastM odified is present)\nAn unordered array of all objects present in the page descr iption at the time\nthe trap networks were generated and that, if changed, could affect the\nappearance of the page. If present, the array must include the foll owing\nobjects:\n* All content streams identified in the page object\'s Content s entry (see\n "Page Objects" on page 87)\n* All resource objects (other than procedure sets) in the page\'s resource dic-\n tionary (see Section 3.7.2, "R esource Dictionaries")\n* All resource objects (other than procedure sets) in t he resource diction-\n aries of any form XObjects on the page (see Section 4.9 , "Form XObjects")\n* All OPI dictionaries associated with XObjects on the page (see Section\n 9.10.6, "Open Prepress Interface (OPI)")')\
5363 .done().done()\
5364 .optional()\
5365 .field('AnnotStates')\
5366 .name('AnnotStates')\
5367 .type('array')\
5368 .comment('(Required if Version is present; must be absent if LastModif ied is present) An\narray of name objects representing the appearance states (va lue of the AS\nentry) for annotations associated with the page. The appearance s tates must\nbe listed in the same order as the annotations in the page\'s Annots array (see\n"Page Objects" on page 87). For an annotation with no AS entry, the corre-\nsponding array element should be null. No appearance state should be\ni ncluded for the trap network annotation itself.')\
5369 .done().done()\
5370 .optional()\
5371 .field('FontFauxing')\
5372 .name('FontFauxing')\
5373 .type('array')\
5374 .comment('(Optional) An array of font dictionaries representing fonts that were "fauxed"\n(replaced by substitute fonts) during the generation of trap networks for the\npage.')\
5375 .done().done()\
5376 .done()
5377
5378 pdfspec.addClass('TrapNetworkAppearanceStreamDictionary', 'Dictionary', 'Addit ional entries specific to a trap network appearance stream')\
5379 .required('NULL')\
5380 .field('PCM')\
5381 .name('PCM')\
5382 .type('name')\
5383 .comment('(Required) The name of the process color model that was assu med\nwhen this trap network was created; equivalent to the PostScript\npage devi ce parameter ProcessColorModel (see Section 6.2.5 of the\nPostScript Language Re ference, Third Edition). Valid values are\nDeviceGray, DeviceRGB, DeviceCMYK, De viceCMY, DeviceRGBK,\nand DeviceN.')\
5384 .done().done()\
5385 .optional()\
5386 .field('SeparationColorNames')\
5387 .name('SeparationColorNames')\
5388 .type('array')\
5389 .comment('(Optional) An array of names identifying the colorants that were\nassumed when this network was created; equivalent to the Post-\nScript pag e device parameter of the same name (see Section 6.2.5 of\nthe PostScript Langua ge Reference, Third Edition). Colorants im-\nplied by the process color model PC M are available automatically\nand need not be explicitly declared. If this entr y is absent, the\ncolorants implied by PCM are assumed.')\
5390 .done().done()\
5391 .optional()\
5392 .field('TrapRegions')\
5393 .name('TrapRegions')\
5394 .type('array')\
5395 .comment('(Optional) An array of indirect references to TrapRegion obj ects\ndefining the page\'s trapping zones and the associated trapping\nparameter s, as described in Adobe Technical Note #5620, Portable\nJob Ticket Format. Thes e references are to objects comprising\nportions of a PJTF job ticket that is em bedded in the PDF file.\nWhen the trapping zones and parameters are defined by a n external\njob ticket (or by some other means, such as with JDF), this entry is \nabsent.')\
5396 .done().done()\
5397 .optional()\
5398 .field('TrapStyles')\
5399 .name('TrapStyles')\
5400 .type('text string')\
5401 .comment('(Optional) A human-readable text string that applications ca n use\nto describe this trap network to the user (for example, to allow\nswitchi ng between trap networks).')\
5402 .done().done()\
5403 .done()
5404
5405 pdfspec.addClass('OpiVersionDictionary', 'Dictionary', 'Entry in an OPI versio n dictionary')\
5406 .required('NULL')\
5407 .field('version_number')\
5408 .name('version_number')\
5409 .type('dictionary')\
5410 .comment('(Required; PDF 1.2) An OPI dictionary specifying the attribu tes of this proxy\n(see Tables 9.50 and 9.51). The key for this entry must be th e name 1.3 or 2.0,\nidentifying the version of OPI to which the proxy correspond s.')\
5411 .done().done()\
5412 .done()
5413
5414
5415 def addDictionaryTypesTo(knowTypes):
5416 knowTypes['GoToActionDictionary'] = ['SkPdfGoToActionDictionary*', 'GoToAction DictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5417 knowTypes['SoundObjectDictionary'] = ['SkPdfSoundObjectDictionary*', 'SoundObj ectDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5418 knowTypes['LaunchActionDictionary'] = ['SkPdfLaunchActionDictionary*', 'Launch ActionDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataTyp e() == ePdfDataType_Dictionary']
5419 knowTypes['RemoteGoToActionDictionary'] = ['SkPdfRemoteGoToActionDictionary*', 'RemoteGoToActionDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo() ->GetDataType() == ePdfDataType_Dictionary']
5420 knowTypes['PageObjectActionsDictionary'] = ['SkPdfPageObjectActionsDictionary* ', 'PageObjectActionsDictionaryFromDictionary', datatypes.CppNull(), 'ret->podof o()->GetDataType() == ePdfDataType_Dictionary']
5421 knowTypes['AnnotationActionsDictionary'] = ['SkPdfAnnotationActionsDictionary* ', 'AnnotationActionsDictionaryFromDictionary', datatypes.CppNull(), 'ret->podof o()->GetDataType() == ePdfDataType_Dictionary']
5422 knowTypes['DocumentCatalogActionsDictionary'] = ['SkPdfDocumentCatalogActionsD ictionary*', 'DocumentCatalogActionsDictionaryFromDictionary', datatypes.CppNull (), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5423 knowTypes['FormFieldActionsDictionary'] = ['SkPdfFormFieldActionsDictionary*', 'FormFieldActionsDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo() ->GetDataType() == ePdfDataType_Dictionary']
5424 knowTypes['JavascriptDictionary'] = ['SkPdfJavascriptDictionary*', 'Javascript DictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5425 knowTypes['EncryptedEmbeddedFileStreamDictionary'] = ['SkPdfEncryptedEmbeddedF ileStreamDictionary*', 'EncryptedEmbeddedFileStreamDictionaryFromDictionary', da tatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5426 knowTypes['IconFitDictionary'] = ['SkPdfIconFitDictionary*', 'IconFitDictionar yFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfData Type_Dictionary']
5427 knowTypes['FDFFieldDictionary'] = ['SkPdfFDFFieldDictionary*', 'FDFFieldDictio naryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfD ataType_Dictionary']
5428 knowTypes['ThreadActionDictionary'] = ['SkPdfThreadActionDictionary*', 'Thread ActionDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataTyp e() == ePdfDataType_Dictionary']
5429 knowTypes['WindowsLaunchActionDictionary'] = ['SkPdfWindowsLaunchActionDiction ary*', 'WindowsLaunchActionDictionaryFromDictionary', datatypes.CppNull(), 'ret- >podofo()->GetDataType() == ePdfDataType_Dictionary']
5430 knowTypes['FileAttachmentAnnotationDictionary'] = ['SkPdfFileAttachmentAnnotat ionDictionary*', 'FileAttachmentAnnotationDictionaryFromDictionary', datatypes.C ppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5431 knowTypes['FDFNamedPageReferenceDictionary'] = ['SkPdfFDFNamedPageReferenceDic tionary*', 'FDFNamedPageReferenceDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5432 knowTypes['FileTrailerDictionary'] = ['SkPdfFileTrailerDictionary*', 'FileTrai lerDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5433 knowTypes['EncryptionCommonDictionary'] = ['SkPdfEncryptionCommonDictionary*', 'EncryptionCommonDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo() ->GetDataType() == ePdfDataType_Dictionary']
5434 knowTypes['Jbig2DecodeFilterDictionary'] = ['SkPdfJbig2DecodeFilterDictionary* ', 'Jbig2DecodeFilterDictionaryFromDictionary', datatypes.CppNull(), 'ret->podof o()->GetDataType() == ePdfDataType_Dictionary']
5435 knowTypes['DctdecodeFilterDictionary'] = ['SkPdfDctdecodeFilterDictionary*', ' DctdecodeFilterDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->G etDataType() == ePdfDataType_Dictionary']
5436 knowTypes['CatalogDictionary'] = ['SkPdfCatalogDictionary*', 'CatalogDictionar yFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfData Type_Dictionary']
5437 knowTypes['PageTreeNodeDictionary'] = ['SkPdfPageTreeNodeDictionary*', 'PageTr eeNodeDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataTyp e() == ePdfDataType_Dictionary']
5438 knowTypes['StandardSecurityHandlerDictionary'] = ['SkPdfStandardSecurityHandle rDictionary*', 'StandardSecurityHandlerDictionaryFromDictionary', datatypes.CppN ull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5439 knowTypes['PageObjectDictionary'] = ['SkPdfPageObjectDictionary*', 'PageObject DictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5440 knowTypes['NameDictionary'] = ['SkPdfNameDictionary*', 'NameDictionaryFromDict ionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dict ionary']
5441 knowTypes['VariableTextFieldDictionary'] = ['SkPdfVariableTextFieldDictionary* ', 'VariableTextFieldDictionaryFromDictionary', datatypes.CppNull(), 'ret->podof o()->GetDataType() == ePdfDataType_Dictionary']
5442 knowTypes['ObjectReferenceDictionary'] = ['SkPdfObjectReferenceDictionary*', ' ObjectReferenceDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->G etDataType() == ePdfDataType_Dictionary']
5443 knowTypes['TrapNetworkAppearanceStreamDictionary'] = ['SkPdfTrapNetworkAppeara nceStreamDictionary*', 'TrapNetworkAppearanceStreamDictionaryFromDictionary', da tatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5444 knowTypes['ImageDictionary'] = ['SkPdfImageDictionary*', 'ImageDictionaryFromD ictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_D ictionary']
5445 knowTypes['OpiVersionDictionary'] = ['SkPdfOpiVersionDictionary*', 'OpiVersion DictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5446 knowTypes['Type1FontDictionary'] = ['SkPdfType1FontDictionary*', 'Type1FontDic tionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == eP dfDataType_Dictionary']
5447 knowTypes['Type3FontDictionary'] = ['SkPdfType3FontDictionary*', 'Type3FontDic tionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == eP dfDataType_Dictionary']
5448 knowTypes['EncodingDictionary'] = ['SkPdfEncodingDictionary*', 'EncodingDictio naryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfD ataType_Dictionary']
5449 knowTypes['CIDSystemInfoDictionary'] = ['SkPdfCIDSystemInfoDictionary*', 'CIDS ystemInfoDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetData Type() == ePdfDataType_Dictionary']
5450 knowTypes['CIDFontDictionary'] = ['SkPdfCIDFontDictionary*', 'CIDFontDictionar yFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfData Type_Dictionary']
5451 knowTypes['CMapDictionary'] = ['SkPdfCMapDictionary*', 'CMapDictionaryFromDict ionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dict ionary']
5452 knowTypes['Type0FontDictionary'] = ['SkPdfType0FontDictionary*', 'Type0FontDic tionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == eP dfDataType_Dictionary']
5453 knowTypes['FontDescriptorDictionary'] = ['SkPdfFontDescriptorDictionary*', 'Fo ntDescriptorDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetD ataType() == ePdfDataType_Dictionary']
5454 knowTypes['ResetFormActionDictionary'] = ['SkPdfResetFormActionDictionary*', ' ResetFormActionDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->G etDataType() == ePdfDataType_Dictionary']
5455 knowTypes['FDFPageDictionary'] = ['SkPdfFDFPageDictionary*', 'FDFPageDictionar yFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfData Type_Dictionary']
5456 knowTypes['ChoiceFieldDictionary'] = ['SkPdfChoiceFieldDictionary*', 'ChoiceFi eldDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5457 knowTypes['StructureElementAccessDictionary'] = ['SkPdfStructureElementAccessD ictionary*', 'StructureElementAccessDictionaryFromDictionary', datatypes.CppNull (), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5458 knowTypes['CalgrayColorSpaceDictionary'] = ['SkPdfCalgrayColorSpaceDictionary* ', 'CalgrayColorSpaceDictionaryFromDictionary', datatypes.CppNull(), 'ret->podof o()->GetDataType() == ePdfDataType_Dictionary']
5459 knowTypes['WebCaptureCommandDictionary'] = ['SkPdfWebCaptureCommandDictionary* ', 'WebCaptureCommandDictionaryFromDictionary', datatypes.CppNull(), 'ret->podof o()->GetDataType() == ePdfDataType_Dictionary']
5460 knowTypes['IccProfileStreamDictionary'] = ['SkPdfIccProfileStreamDictionary*', 'IccProfileStreamDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo() ->GetDataType() == ePdfDataType_Dictionary']
5461 knowTypes['LabColorSpaceDictionary'] = ['SkPdfLabColorSpaceDictionary*', 'LabC olorSpaceDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetData Type() == ePdfDataType_Dictionary']
5462 knowTypes['CalrgbColorSpaceDictionary'] = ['SkPdfCalrgbColorSpaceDictionary*', 'CalrgbColorSpaceDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo() ->GetDataType() == ePdfDataType_Dictionary']
5463 knowTypes['HideActionDictionary'] = ['SkPdfHideActionDictionary*', 'HideAction DictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5464 knowTypes['FDFTemplateDictionary'] = ['SkPdfFDFTemplateDictionary*', 'FDFTempl ateDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5465 knowTypes['NamedActionsDictionary'] = ['SkPdfNamedActionsDictionary*', 'NamedA ctionsDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataTyp e() == ePdfDataType_Dictionary']
5466 knowTypes['InteractiveFormDictionary'] = ['SkPdfInteractiveFormDictionary*', ' InteractiveFormDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->G etDataType() == ePdfDataType_Dictionary']
5467 knowTypes['URIActionDictionary'] = ['SkPdfURIActionDictionary*', 'URIActionDic tionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == eP dfDataType_Dictionary']
5468 knowTypes['URIDictionary'] = ['SkPdfURIDictionary*', 'URIDictionaryFromDiction ary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Diction ary']
5469 knowTypes['SoundActionDictionary'] = ['SkPdfSoundActionDictionary*', 'SoundAct ionDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5470 knowTypes['MovieActionDictionary'] = ['SkPdfMovieActionDictionary*', 'MovieAct ionDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5471 knowTypes['SourceInformationDictionary'] = ['SkPdfSourceInformationDictionary* ', 'SourceInformationDictionaryFromDictionary', datatypes.CppNull(), 'ret->podof o()->GetDataType() == ePdfDataType_Dictionary']
5472 knowTypes['FDFFileAnnotationDictionary'] = ['SkPdfFDFFileAnnotationDictionary* ', 'FDFFileAnnotationDictionaryFromDictionary', datatypes.CppNull(), 'ret->podof o()->GetDataType() == ePdfDataType_Dictionary']
5473 knowTypes['TransitionDictionary'] = ['SkPdfTransitionDictionary*', 'Transition DictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5474 knowTypes['BeadDictionary'] = ['SkPdfBeadDictionary*', 'BeadDictionaryFromDict ionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dict ionary']
5475 knowTypes['ThreadDictionary'] = ['SkPdfThreadDictionary*', 'ThreadDictionaryFr omDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataTyp e_Dictionary']
5476 knowTypes['PageLabelDictionary'] = ['SkPdfPageLabelDictionary*', 'PageLabelDic tionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == eP dfDataType_Dictionary']
5477 knowTypes['OutlineItemDictionary'] = ['SkPdfOutlineItemDictionary*', 'OutlineI temDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5478 knowTypes['OutlineDictionary'] = ['SkPdfOutlineDictionary*', 'OutlineDictionar yFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfData Type_Dictionary']
5479 knowTypes['ViewerPreferencesDictionary'] = ['SkPdfViewerPreferencesDictionary* ', 'ViewerPreferencesDictionaryFromDictionary', datatypes.CppNull(), 'ret->podof o()->GetDataType() == ePdfDataType_Dictionary']
5480 knowTypes['MarkInformationDictionary'] = ['SkPdfMarkInformationDictionary*', ' MarkInformationDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->G etDataType() == ePdfDataType_Dictionary']
5481 knowTypes['URLAliasDictionary'] = ['SkPdfURLAliasDictionary*', 'URLAliasDictio naryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfD ataType_Dictionary']
5482 knowTypes['WebCaptureDictionary'] = ['SkPdfWebCaptureDictionary*', 'WebCapture DictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5483 knowTypes['AttributeObjectDictionary'] = ['SkPdfAttributeObjectDictionary*', ' AttributeObjectDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->G etDataType() == ePdfDataType_Dictionary']
5484 knowTypes['ArtifactsDictionary'] = ['SkPdfArtifactsDictionary*', 'ArtifactsDic tionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == eP dfDataType_Dictionary']
5485 knowTypes['WebCaptureInformationDictionary'] = ['SkPdfWebCaptureInformationDic tionary*', 'WebCaptureInformationDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5486 knowTypes['TrapNetworkAnnotationDictionary'] = ['SkPdfTrapNetworkAnnotationDic tionary*', 'TrapNetworkAnnotationDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5487 knowTypes['Type1FormDictionary'] = ['SkPdfType1FormDictionary*', 'Type1FormDic tionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == eP dfDataType_Dictionary']
5488 knowTypes['GroupAttributesDictionary'] = ['SkPdfGroupAttributesDictionary*', ' GroupAttributesDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->G etDataType() == ePdfDataType_Dictionary']
5489 knowTypes['ReferenceDictionary'] = ['SkPdfReferenceDictionary*', 'ReferenceDic tionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == eP dfDataType_Dictionary']
5490 knowTypes['PSXobjectDictionary'] = ['SkPdfPSXobjectDictionary*', 'PSXobjectDic tionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == eP dfDataType_Dictionary']
5491 knowTypes['BoxStyleDictionary'] = ['SkPdfBoxStyleDictionary*', 'BoxStyleDictio naryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfD ataType_Dictionary']
5492 knowTypes['BoxColorInformationDictionary'] = ['SkPdfBoxColorInformationDiction ary*', 'BoxColorInformationDictionaryFromDictionary', datatypes.CppNull(), 'ret- >podofo()->GetDataType() == ePdfDataType_Dictionary']
5493 knowTypes['WebCaptureCommandSettingsDictionary'] = ['SkPdfWebCaptureCommandSet tingsDictionary*', 'WebCaptureCommandSettingsDictionaryFromDictionary', datatype s.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5494 knowTypes['InlineLevelStructureElementsDictionary'] = ['SkPdfInlineLevelStruct ureElementsDictionary*', 'InlineLevelStructureElementsDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5495 knowTypes['AppearanceCharacteristicsDictionary'] = ['SkPdfAppearanceCharacteri sticsDictionary*', 'AppearanceCharacteristicsDictionaryFromDictionary', datatype s.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5496 knowTypes['Type3ShadingDictionary'] = ['SkPdfType3ShadingDictionary*', 'Type3S hadingDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataTyp e() == ePdfDataType_Dictionary']
5497 knowTypes['Type4ShadingDictionary'] = ['SkPdfType4ShadingDictionary*', 'Type4S hadingDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataTyp e() == ePdfDataType_Dictionary']
5498 knowTypes['TextFieldDictionary'] = ['SkPdfTextFieldDictionary*', 'TextFieldDic tionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == eP dfDataType_Dictionary']
5499 knowTypes['RadioButtonFieldDictionary'] = ['SkPdfRadioButtonFieldDictionary*', 'RadioButtonFieldDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo() ->GetDataType() == ePdfDataType_Dictionary']
5500 knowTypes['CheckboxFieldDictionary'] = ['SkPdfCheckboxFieldDictionary*', 'Chec kboxFieldDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetData Type() == ePdfDataType_Dictionary']
5501 knowTypes['Type1PatternDictionary'] = ['SkPdfType1PatternDictionary*', 'Type1P atternDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataTyp e() == ePdfDataType_Dictionary']
5502 knowTypes['Type2PatternDictionary'] = ['SkPdfType2PatternDictionary*', 'Type2P atternDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataTyp e() == ePdfDataType_Dictionary']
5503 knowTypes['DeviceNColorSpaceDictionary'] = ['SkPdfDeviceNColorSpaceDictionary* ', 'DeviceNColorSpaceDictionaryFromDictionary', datatypes.CppNull(), 'ret->podof o()->GetDataType() == ePdfDataType_Dictionary']
5504 knowTypes['Type1ShadingDictionary'] = ['SkPdfType1ShadingDictionary*', 'Type1S hadingDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataTyp e() == ePdfDataType_Dictionary']
5505 knowTypes['Type2ShadingDictionary'] = ['SkPdfType2ShadingDictionary*', 'Type2S hadingDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataTyp e() == ePdfDataType_Dictionary']
5506 knowTypes['StandardStructureDictionary'] = ['SkPdfStandardStructureDictionary* ', 'StandardStructureDictionaryFromDictionary', datatypes.CppNull(), 'ret->podof o()->GetDataType() == ePdfDataType_Dictionary']
5507 knowTypes['ShadingDictionary'] = ['SkPdfShadingDictionary*', 'ShadingDictionar yFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfData Type_Dictionary']
5508 knowTypes['EmbeddedFileParameterDictionary'] = ['SkPdfEmbeddedFileParameterDic tionary*', 'EmbeddedFileParameterDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5509 knowTypes['MacOsFileInformationDictionary'] = ['SkPdfMacOsFileInformationDicti onary*', 'MacOsFileInformationDictionaryFromDictionary', datatypes.CppNull(), 'r et->podofo()->GetDataType() == ePdfDataType_Dictionary']
5510 knowTypes['WebCaptureImageSetDictionary'] = ['SkPdfWebCaptureImageSetDictionar y*', 'WebCaptureImageSetDictionaryFromDictionary', datatypes.CppNull(), 'ret->po dofo()->GetDataType() == ePdfDataType_Dictionary']
5511 knowTypes['GraphicsStateDictionary'] = ['SkPdfGraphicsStateDictionary*', 'Grap hicsStateDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetData Type() == ePdfDataType_Dictionary']
5512 knowTypes['FileSpecificationDictionary'] = ['SkPdfFileSpecificationDictionary* ', 'FileSpecificationDictionaryFromDictionary', datatypes.CppNull(), 'ret->podof o()->GetDataType() == ePdfDataType_Dictionary']
5513 knowTypes['EmbeddedFileStreamDictionary'] = ['SkPdfEmbeddedFileStreamDictionar y*', 'EmbeddedFileStreamDictionaryFromDictionary', datatypes.CppNull(), 'ret->po dofo()->GetDataType() == ePdfDataType_Dictionary']
5514 knowTypes['MovieDictionary'] = ['SkPdfMovieDictionary*', 'MovieDictionaryFromD ictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_D ictionary']
5515 knowTypes['FieldDictionary'] = ['SkPdfFieldDictionary*', 'FieldDictionaryFromD ictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_D ictionary']
5516 knowTypes['MovieActivationDictionary'] = ['SkPdfMovieActivationDictionary*', ' MovieActivationDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->G etDataType() == ePdfDataType_Dictionary']
5517 knowTypes['TableAttributesDictionary'] = ['SkPdfTableAttributesDictionary*', ' TableAttributesDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->G etDataType() == ePdfDataType_Dictionary']
5518 knowTypes['ListAttributeDictionary'] = ['SkPdfListAttributeDictionary*', 'List AttributeDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetData Type() == ePdfDataType_Dictionary']
5519 knowTypes['SeparationDictionary'] = ['SkPdfSeparationDictionary*', 'Separation DictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5520 knowTypes['BlockLevelStructureElementsDictionary'] = ['SkPdfBlockLevelStructur eElementsDictionary*', 'BlockLevelStructureElementsDictionaryFromDictionary', da tatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5521 knowTypes['FDFCatalogDictionary'] = ['SkPdfFDFCatalogDictionary*', 'FDFCatalog DictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5522 knowTypes['Type1HalftoneDictionary'] = ['SkPdfType1HalftoneDictionary*', 'Type 1HalftoneDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetData Type() == ePdfDataType_Dictionary']
5523 knowTypes['Type10HalftoneDictionary'] = ['SkPdfType10HalftoneDictionary*', 'Ty pe10HalftoneDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetD ataType() == ePdfDataType_Dictionary']
5524 knowTypes['Type6HalftoneDictionary'] = ['SkPdfType6HalftoneDictionary*', 'Type 6HalftoneDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetData Type() == ePdfDataType_Dictionary']
5525 knowTypes['Type5HalftoneDictionary'] = ['SkPdfType5HalftoneDictionary*', 'Type 5HalftoneDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetData Type() == ePdfDataType_Dictionary']
5526 knowTypes['Type16HalftoneDictionary'] = ['SkPdfType16HalftoneDictionary*', 'Ty pe16HalftoneDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetD ataType() == ePdfDataType_Dictionary']
5527 knowTypes['Type6ShadingDictionary'] = ['SkPdfType6ShadingDictionary*', 'Type6S hadingDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataTyp e() == ePdfDataType_Dictionary']
5528 knowTypes['StreamCommonDictionary'] = ['SkPdfStreamCommonDictionary*', 'Stream CommonDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataTyp e() == ePdfDataType_Dictionary']
5529 knowTypes['FDFDictionary'] = ['SkPdfFDFDictionary*', 'FDFDictionaryFromDiction ary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Diction ary']
5530 knowTypes['LzwdecodeAndFlatedecodeFiltersDictionary'] = ['SkPdfLzwdecodeAndFla tedecodeFiltersDictionary*', 'LzwdecodeAndFlatedecodeFiltersDictionaryFromDictio nary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictio nary']
5531 knowTypes['CcittfaxdecodeFilterDictionary'] = ['SkPdfCcittfaxdecodeFilterDicti onary*', 'CcittfaxdecodeFilterDictionaryFromDictionary', datatypes.CppNull(), 'r et->podofo()->GetDataType() == ePdfDataType_Dictionary']
5532 knowTypes['MarkedContentReferenceDictionary'] = ['SkPdfMarkedContentReferenceD ictionary*', 'MarkedContentReferenceDictionaryFromDictionary', datatypes.CppNull (), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5533 knowTypes['SignatureDictionary'] = ['SkPdfSignatureDictionary*', 'SignatureDic tionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == eP dfDataType_Dictionary']
5534 knowTypes['SoundAnnotationDictionary'] = ['SkPdfSoundAnnotationDictionary*', ' SoundAnnotationDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->G etDataType() == ePdfDataType_Dictionary']
5535 knowTypes['MovieAnnotationDictionary'] = ['SkPdfMovieAnnotationDictionary*', ' MovieAnnotationDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->G etDataType() == ePdfDataType_Dictionary']
5536 knowTypes['Type3FunctionDictionary'] = ['SkPdfType3FunctionDictionary*', 'Type 3FunctionDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetData Type() == ePdfDataType_Dictionary']
5537 knowTypes['Type2FunctionDictionary'] = ['SkPdfType2FunctionDictionary*', 'Type 2FunctionDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetData Type() == ePdfDataType_Dictionary']
5538 knowTypes['RubberStampAnnotationDictionary'] = ['SkPdfRubberStampAnnotationDic tionary*', 'RubberStampAnnotationDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5539 knowTypes['InkAnnotationDictionary'] = ['SkPdfInkAnnotationDictionary*', 'InkA nnotationDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetData Type() == ePdfDataType_Dictionary']
5540 knowTypes['SquareOrCircleAnnotation'] = ['SkPdfSquareOrCircleAnnotation*', 'Sq uareOrCircleAnnotationFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetD ataType() == ePdfDataType_Dictionary']
5541 knowTypes['MarkupAnnotationsDictionary'] = ['SkPdfMarkupAnnotationsDictionary* ', 'MarkupAnnotationsDictionaryFromDictionary', datatypes.CppNull(), 'ret->podof o()->GetDataType() == ePdfDataType_Dictionary']
5542 knowTypes['NameTreeNodeDictionary'] = ['SkPdfNameTreeNodeDictionary*', 'NameTr eeNodeDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataTyp e() == ePdfDataType_Dictionary']
5543 knowTypes['Type5ShadingDictionary'] = ['SkPdfType5ShadingDictionary*', 'Type5S hadingDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataTyp e() == ePdfDataType_Dictionary']
5544 knowTypes['ResourceDictionary'] = ['SkPdfResourceDictionary*', 'ResourceDictio naryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfD ataType_Dictionary']
5545 knowTypes['SubmitFormActionDictionary'] = ['SkPdfSubmitFormActionDictionary*', 'SubmitFormActionDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo() ->GetDataType() == ePdfDataType_Dictionary']
5546 knowTypes['Type0FunctionDictionary'] = ['SkPdfType0FunctionDictionary*', 'Type 0FunctionDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetData Type() == ePdfDataType_Dictionary']
5547 knowTypes['FunctionCommonDictionary'] = ['SkPdfFunctionCommonDictionary*', 'Fu nctionCommonDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetD ataType() == ePdfDataType_Dictionary']
5548 knowTypes['NumberTreeNodeDictionary'] = ['SkPdfNumberTreeNodeDictionary*', 'Nu mberTreeNodeDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetD ataType() == ePdfDataType_Dictionary']
5549 knowTypes['ActionDictionary'] = ['SkPdfActionDictionary*', 'ActionDictionaryFr omDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataTyp e_Dictionary']
5550 knowTypes['WidgetAnnotationDictionary'] = ['SkPdfWidgetAnnotationDictionary*', 'WidgetAnnotationDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo() ->GetDataType() == ePdfDataType_Dictionary']
5551 knowTypes['StructureTreeRootDictionary'] = ['SkPdfStructureTreeRootDictionary* ', 'StructureTreeRootDictionaryFromDictionary', datatypes.CppNull(), 'ret->podof o()->GetDataType() == ePdfDataType_Dictionary']
5552 knowTypes['JavascriptActionDictionary'] = ['SkPdfJavascriptActionDictionary*', 'JavascriptActionDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo() ->GetDataType() == ePdfDataType_Dictionary']
5553 knowTypes['AlternateImageDictionary'] = ['SkPdfAlternateImageDictionary*', 'Al ternateImageDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetD ataType() == ePdfDataType_Dictionary']
5554 knowTypes['PDF_XOutputIntentDictionary'] = ['SkPdfPDF_XOutputIntentDictionary* ', 'PDF_XOutputIntentDictionaryFromDictionary', datatypes.CppNull(), 'ret->podof o()->GetDataType() == ePdfDataType_Dictionary']
5555 knowTypes['DocumentInformationDictionary'] = ['SkPdfDocumentInformationDiction ary*', 'DocumentInformationDictionaryFromDictionary', datatypes.CppNull(), 'ret- >podofo()->GetDataType() == ePdfDataType_Dictionary']
5556 knowTypes['MetadataStreamDictionary'] = ['SkPdfMetadataStreamDictionary*', 'Me tadataStreamDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetD ataType() == ePdfDataType_Dictionary']
5557 knowTypes['ImportDataActionDictionary'] = ['SkPdfImportDataActionDictionary*', 'ImportDataActionDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo() ->GetDataType() == ePdfDataType_Dictionary']
5558 knowTypes['PagePieceDictionary'] = ['SkPdfPagePieceDictionary*', 'PagePieceDic tionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == eP dfDataType_Dictionary']
5559 knowTypes['ApplicationDataDictionary'] = ['SkPdfApplicationDataDictionary*', ' ApplicationDataDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->G etDataType() == ePdfDataType_Dictionary']
5560 knowTypes['ComponentsWithMetadataDictionary'] = ['SkPdfComponentsWithMetadataD ictionary*', 'ComponentsWithMetadataDictionaryFromDictionary', datatypes.CppNull (), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5561 knowTypes['PrinterMarkFormDictionary'] = ['SkPdfPrinterMarkFormDictionary*', ' PrinterMarkFormDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->G etDataType() == ePdfDataType_Dictionary']
5562 knowTypes['StructureElementDictionary'] = ['SkPdfStructureElementDictionary*', 'StructureElementDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo() ->GetDataType() == ePdfDataType_Dictionary']
5563 knowTypes['PrinterMarkAnnotationDictionary'] = ['SkPdfPrinterMarkAnnotationDic tionary*', 'PrinterMarkAnnotationDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5564 knowTypes['SoftMaskImageDictionary'] = ['SkPdfSoftMaskImageDictionary*', 'Soft MaskImageDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetData Type() == ePdfDataType_Dictionary']
5565 knowTypes['TransparencyGroupDictionary'] = ['SkPdfTransparencyGroupDictionary* ', 'TransparencyGroupDictionaryFromDictionary', datatypes.CppNull(), 'ret->podof o()->GetDataType() == ePdfDataType_Dictionary']
5566 knowTypes['SoftMaskDictionary'] = ['SkPdfSoftMaskDictionary*', 'SoftMaskDictio naryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfD ataType_Dictionary']
5567 knowTypes['BorderStyleDictionary'] = ['SkPdfBorderStyleDictionary*', 'BorderSt yleDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5568 knowTypes['PopUpAnnotationDictionary'] = ['SkPdfPopUpAnnotationDictionary*', ' PopUpAnnotationDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->G etDataType() == ePdfDataType_Dictionary']
5569 knowTypes['FDFTrailerDictionary'] = ['SkPdfFDFTrailerDictionary*', 'FDFTrailer DictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5570 knowTypes['LineAnnotationDictionary'] = ['SkPdfLineAnnotationDictionary*', 'Li neAnnotationDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetD ataType() == ePdfDataType_Dictionary']
5571 knowTypes['FreeTextAnnotationDictionary'] = ['SkPdfFreeTextAnnotationDictionar y*', 'FreeTextAnnotationDictionaryFromDictionary', datatypes.CppNull(), 'ret->po dofo()->GetDataType() == ePdfDataType_Dictionary']
5572 knowTypes['ALinkAnnotationDictionary'] = ['SkPdfALinkAnnotationDictionary*', ' ALinkAnnotationDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->G etDataType() == ePdfDataType_Dictionary']
5573 knowTypes['TextAnnotationDictionary'] = ['SkPdfTextAnnotationDictionary*', 'Te xtAnnotationDictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetD ataType() == ePdfDataType_Dictionary']
5574 knowTypes['WebCapturePageSetDictionary'] = ['SkPdfWebCapturePageSetDictionary* ', 'WebCapturePageSetDictionaryFromDictionary', datatypes.CppNull(), 'ret->podof o()->GetDataType() == ePdfDataType_Dictionary']
5575 knowTypes['AppearanceDictionary'] = ['SkPdfAppearanceDictionary*', 'Appearance DictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5576 knowTypes['CIDFontDescriptorDictionary'] = ['SkPdfCIDFontDescriptorDictionary* ', 'CIDFontDescriptorDictionaryFromDictionary', datatypes.CppNull(), 'ret->podof o()->GetDataType() == ePdfDataType_Dictionary']
5577 knowTypes['EmbeddedFontStreamDictionary'] = ['SkPdfEmbeddedFontStreamDictionar y*', 'EmbeddedFontStreamDictionaryFromDictionary', datatypes.CppNull(), 'ret->po dofo()->GetDataType() == ePdfDataType_Dictionary']
5578 knowTypes['AnnotationDictionary'] = ['SkPdfAnnotationDictionary*', 'Annotation DictionaryFromDictionary', datatypes.CppNull(), 'ret->podofo()->GetDataType() == ePdfDataType_Dictionary']
5579
5580
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698