@@ -47,6 +47,8 @@ type PDDocument extends PDObject {
4747 link pages: PDPage+;
4848 % document level metadata
4949 link metadata: PDMetadata?;
50+ % true if the catalog dictionary contains the metadata
51+ property containsMetadata: Boolean;
5052 % Interactive Form Dictionary (AcroForm entry in the Catalog)
5153 link AcroForm: PDAcroForm?;
5254 % additional actions dictionary defined for the document (AA entry in the Catalog)
@@ -61,10 +63,14 @@ type PDDocument extends PDObject {
6163 link OCProperties: PDOCProperties?;
6264 % the link to the document structure tree root dictionary
6365 link StructTreeRoot: PDStructTreeRoot?;
66+ % true if the catalog dictionary contains the struct tree root
67+ property containsStructTreeRoot: Boolean;
6468 % true if the document contains alternate presentations (/AlternatePresentations entry in the document names dictionary)
6569 property containsAlternatePresentations: Boolean;
6670 % value of the Lang entry from the document catalog
6771 link Lang: CosLang?;
72+ % true if the catalog dictionary contains the lang
73+ property containsLang: Boolean;
6874 % link to the permissions object
6975 link Perms: PDPerms?;
7076 % true if the catalog dictionary contains the AA entry
@@ -92,6 +98,8 @@ type PDPage extends PDObject {
9298 link contentStream: PDContentStream;
9399 % all page annotations
94100 link annots: PDAnnot*;
101+ % true if the page dictionary contains annotations
102+ property containsAnnotations: Boolean;
95103 % link to the parent transparency blending space
96104 link parentTransparencyColorSpace: TransparencyColorSpace?;
97105 % group attributes dictionary
@@ -309,6 +317,8 @@ type PDFont extends PDResource {
309317 property renderingMode: Integer;
310318 % embedded font program for Type 1, TrueType or CID Font
311319 link fontFile: FontProgram?;
320+ % true if the font dictionary contains the font program
321+ property containsFontFile: Boolean;
312322 % value of the entry /Subtype in the embedded font file stream, or null, if the this entry is not present (or the font is not embedded)
313323 property fontFileSubtype: String;
314324 % value of Italic flag in Flags entry in the font descriptor
@@ -395,6 +405,8 @@ type PDCMap extends PDObject {
395405 link UseCMap: PDReferencedCMap?;
396406 % link to the embedded CMap file for a non-standard CMap
397407 link embeddedFile: CMapFile?;
408+ % true if the cmap dictionary contains the embedded CMap file
409+ property containsEmbeddedFile: Boolean;
398410}
399411
400412% CMap that is referenced with UseCMap in other CMap
@@ -428,10 +440,14 @@ type PDXImage extends PDXObject {
428440 link jpxStream: JPEG2000?;
429441 % link to the soft mask image (SMask key)
430442 link SMask: PDSMaskImage?;
443+ % link to the mask image (Mask key)
444+ link Mask: PDMaskImage?;
431445 % true if the image dictionary contains Alternates key
432446 property containsAlternates: Boolean;
433447 % value of the BitsPerComponent key
434448 property BitsPerComponent: Integer;
449+ % true, if this Image XObject is mask
450+ property isMask: Boolean;
435451}
436452
437453% SMask image
@@ -441,6 +457,11 @@ type PDSMaskImage extends PDXImage {
441457
442458}
443459
460+ % Mask image
461+ type PDMaskImage extends PDXImage {
462+
463+ }
464+
444465% Inline image object
445466type PDInlineImage extends PDXImage {
446467 % link to the inline image filters
@@ -483,20 +504,26 @@ type PDGroup extends PDObject {
483504
484505% ExtGState dictionary
485506type PDExtGState extends PDResource {
486- % TR function
487- property TR: String;
488507 % TR2 function
489- property TR2: String;
508+ property TR2NameValue: String;
509+ % true if the ExtGState dictionary contains TR key
510+ property containsTR: Boolean;
511+ % true if the ExtGState dictionary contains TR2 key
512+ property containsTR2: Boolean;
490513 % Halftone dictionary
491514 link HT: PDHalftone;
492515 % true if the ExtGState dictionary contains HTP key
493516 property containsHTP: Boolean;
494517 % true if the ExtGState dictionary contains HTO key
495518 property containsHTO: Boolean;
496519 % String representation of the SMask key ("None" or "Custom")
497- property SMask: String;
520+ property SMaskNameValue: String;
521+ % true if the ExtGState dictionary contains SMask key
522+ property containsSMask: Boolean;
523+ % true if the ExtGState dictionary contains BM key
524+ property containsBM: Boolean;
498525 % blend mode
499- property BM : String;
526+ property BMNameValue : String;
500527 % link to blend mode
501528 link bm: CosBM?;
502529 % fill alpha
@@ -540,6 +567,8 @@ type PDAnnot extends PDObject {
540567 property F: Integer;
541568 % ampersand-separated list of all keys in the annotation's appearance dictionary (AP key)
542569 property AP: String;
570+ % true if the annotation dictionary contains the appearances
571+ property containsAppearances: Boolean;
543572 % the value of the /FT entry (Field type), in case this is the widget annotation representing the form field, or null, if this entry is not present
544573 property FT: String;
545574 % the type of the normal appearance entry (/N key) in the annotation appearance dictionary (/AP key) or null, if the normal appearance is not present
@@ -570,6 +599,8 @@ type PDAnnot extends PDObject {
570599 property structParentObjectKey: String;
571600 % value of the Lang entry
572601 link Lang: CosLang?;
602+ % true if the annotation dictionary contains the lang
603+ property containsLang: Boolean;
573604 % the value of the /Contents entry
574605 property Contents: String;
575606 % the Alt entry of parent structure element
@@ -688,7 +719,7 @@ type PDAcroForm extends PDObject {
688719 property NeedAppearances: Boolean;
689720 % true if the form dictionary contains XFA key
690721 property containsXFA: Boolean;
691- % all interactive form fields in the document
722+ % root interactive form fields in the document
692723 link formFields: PDFormField*;
693724 % value of dynamicRender property in XFA
694725 property dynamicRender: String;
@@ -704,6 +735,8 @@ type PDFormField extends PDObject {
704735 property containsAA: Boolean;
705736 % value of the Lang entry
706737 link Lang: CosLang?;
738+ % true if the form field dictionary contains the lang
739+ property containsLang: Boolean;
707740 % value of the TU entry
708741 property TU: String;
709742 % value of the Ff entry
@@ -793,6 +826,8 @@ type PDMetadata extends PDObject {
793826 link stream: CosStream;
794827 % value of the Filter key in the metadata stream dictionary
795828 property Filter: String;
829+ % true if this is catalog metadata
830+ property isCatalogMetadata: Boolean;
796831}
797832
798833% the output intent dictionary
@@ -869,12 +904,17 @@ type PDStructElem extends PDStructTreeNode {
869904 property parentStandardType: String;
870905 % structure type
871906 link S: CosUnicodeName;
907+ % the namespace specified in the element dictionary (or the default namespace, if not explicitly specified) and
908+ % the element tag separated by the colon
909+ property namespaceAndTag: String;
872910 % structure type
873911 property valueS: String;
874912 % standard structure type defined via role map
875913 property standardType: String;
876914 % value of the Lang entry
877915 link Lang: CosLang?;
916+ % true if the structure element dictionary contains the lang
917+ property containsLang: Boolean;
878918 % value of parent Lang entry
879919 property parentLang: String;
880920 % remapped standard type value
0 commit comments