
    [gb3                     T   d Z ddlmZ ddlmZmZ  G d d          Z G d d          Z G d d	          Z G d
 d          Z	 G d de          Z
 G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d d          Z G d  d!          Z G d" d#          Z G d$ d%          Z G d& d'          Z G d( d)          Z G d* d+          Z G d, d-          Z G d. d/          Z G d0 d1          Z G d2 d3e          Z G d4 d5          Z G d6 d7          Z G d8 d9          Z  G d: d;          Z! G d< d=e          Z"eee!eeeeee	eeeee eeeeeeeeeeefZ#d>S )?a  
See Portable Document Format Reference Manual, 1993. ISBN 0-201-62628-4.

See https://ia802202.us.archive.org/8/items/pdfy-0vt8s-egqFwDl7L2/PDF%20Reference%201.0.pdf

PDF Reference, third edition, Version 1.4, 2001. ISBN 0-201-75839-3.

PDF Reference, sixth edition, Version 1.7, 2006.
    )IntFlag)DictTuplec                   &    e Zd ZdZdZdZdZdZdZdS )Corez/Keywords that don't quite belong anywhere else.	/Outlines/Threadsz/Page/Pagesz/CatalogN)	__name__
__module____qualname____doc__OUTLINESTHREADSPAGEPAGESCATALOG     K/var/www/pdf_extract/myenv/lib/python3.11/site-packages/PyPDF2/constants.pyr   r      s-        99HGDEGGGr   r   c                   "    e Zd ZdZdZdZdZdZdS )TrailerKeysz/Rootz/Encrypt/IDz/Infoz/SizeN)r   r   r   ROOTENCRYPTIDINFOSIZEr   r   r   r   r      s'        DG	BDDDDr   r   c                       e Zd ZdZdZdS )CatalogAttributes/Names/DestsN)r   r   r   NAMESDESTSr   r   r   r    r    !   s        EEEEr   r    c                   &    e Zd ZdZdZdZdZdZdZdS )EncryptionDictAttributeszo
    Additional encryption dictionary entries for the standard security handler.

    TABLE 3.19, Page 122
    z/Rz/Oz/U/Pz/EncryptMetadataN)	r   r   r   r   ROUPENCRYPT_METADATAr   r   r   r&   r&   &   s6          	AAAA)r   r&   c                       e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"S )#UserAccessPermissionsz"TABLE 3.20 User access permissions                   @         i   i   i   i   i    i @  i   i   i   i   i   i   i    i  @ i   i   i   i   i   i   i    i   @l        N)$r   r   r   r   R1R2PRINTMODIFYEXTRACTADD_OR_MODIFYR7R8FILL_FORM_FIELDSEXTRACT_TEXT_AND_GRAPHICSASSEMBLE_DOCPRINT_TO_REPRESENTATIONR13R14R15R16R17R18R19R20R21R22R23R24R25R26R27R28R29R30R31R32r   r   r   r.   r.   4   s        ,,	
B	
BEFGM	B	B #L"
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
CCCr   r.   c                   2    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
S )
Ressourcesz,TABLE 3.30 Entries in a resource dictionary.z
/ExtGState/ColorSpacez/Patternz/Shadingz/XObject/Fontz/ProcSetz/PropertiesN)r   r   r   r   EXT_G_STATECOLOR_SPACEPATTERNSHADINGXOBJECTFONTPROC_SET
PROPERTIESr   r   r   rY   rY   Y   s<        66KKGGGDHJJJr   rY   c                   "    e Zd ZdZdZdZdZdZdS )PagesAttributesz$Page Attributes, Table 6.2, Page 52./Type/Kidsz/Count/ParentN)r   r   r   r   TYPEKIDSCOUNTPARENTr   r   r   re   re   f   s(        ..DDEFFFr   re   c                       e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dS ) PageAttributesz$TABLE 3.27 Entries in a page object.rf   rh   z/LastModifiedz
/Resourcesz	/MediaBoxz/CropBoxz	/BleedBoxz/TrimBoxz/ArtBoxz/BoxColorInfo	/Contentsz/Rotatez/Groupz/Thumbz/Bz/Durz/Transz/Annots/AA	/Metadata
/PieceInfoz/StructParentsr   z/PZz/Tabsz/TemplateInstantiatedz
/PresStepsz	/UserUnitz/VPN)!r   r   r   r   ri   rl   LAST_MODIFIED	RESOURCESMEDIABOXCROPBOXBLEEDBOXTRIMBOXARTBOXBOX_COLOR_INFOCONTENTSROTATEGROUPTHUMBBDURTRANSANNOTSAAMETADATA
PIECE_INFOSTRUCT_PARENTSr   PZTABSTEMPLATE_INSTANTIATED
PRES_STEPS	USER_UNITVPr   r   r   rn   rn   o   s        ..DF  IHGHGF$NHFEEA
CEF	BHJ%N	B	BD3JI	BBBr   rn   c                   "    e Zd ZdZdZdZdZdZdS )"FileSpecificationDictionaryEntriesz5TABLE 3.41 Entries in a file specification dictionaryrf   z/FS/Fz/EFN)r   r   r   r   TypeFSFEFr   r   r   r   r      s(        ??D	BA	BBBr   r   c                       e Zd ZdZdZdZdZdS )StreamAttributesz
Table 4.2.z/Lengthz/Filterz/DecodeParmsN)r   r   r   r   LENGTHFILTERDECODE_PARMSr   r   r   r   r      s#        FF!LLLr   r   c                   .    e Zd ZdZdZdZdZdZdZdZ	dZ
d	S )
FilterTypeszF
    Table 4.3 of the 1.4 Manual.

    Page 354 of the 1.7 Manual
    z/ASCIIHexDecodez/ASCII85Decodez
/LZWDecodez/FlateDecodez/RunLengthDecodez/CCITTFaxDecodez
/DCTDecodeN)r   r   r   r   ASCII_HEX_DECODEASCII_85_DECODE
LZW_DECODEFLATE_DECODERUN_LENGTH_DECODECCITT_FAX_DECODE
DCT_DECODEr   r   r   r   r      s@          )&OJ!L*(JJJr   r   c                   .    e Zd ZdZdZdZdZdZdZdZ	dZ
d	S )
FilterTypeAbbreviationsz*Table 4.44 of the 1.7 Manual (page 353ff).z/AHxz/A85z/LZWz/Flz/RLz/CCFz/DCTN)r   r   r   r   AHxA85LZWFLRLCCFDCTr   r   r   r   r      s7        44
C
C
C	B	B
C
CCCr   r   c                   &    e Zd ZdZdZdZdZdZdZdS )LzwFilterParametersz
Table 4.4.z
/Predictor/Columnsz/Colors/BitsPerComponentz/EarlyChangeN)	r   r   r   r   	PREDICTORCOLUMNSCOLORSBITS_PER_COMPONENTEARLY_CHANGEr   r   r   r   r      s.        IGF,!LLLr   r   c                   2    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
S )CcittFaxDecodeParametersz
Table 4.5.z/Kz
/EndOfLinez/EncodedByteAlignr   z/Rowsz/EndOfBlockz	/BlackIs1z/DamagedRowsBeforeErrorN)r   r   r   r   KEND_OF_LINEENCODED_BYTE_ALIGNr   ROWSEND_OF_BLOCK
BLACK_IS_1DAMAGED_ROWS_BEFORE_ERRORr   r   r   r   r      s@        AK,GD LJ 9r   r   c                   :    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdS )ImageAttributeszTable 6.20.rf   /Subtypez/Namez/Widthz/Heightr   rZ   z/Decodez/Interpolatez
/ImageMaskN)r   r   r   r   ri   SUBTYPENAMEWIDTHHEIGHTr   r]   DECODEINTERPOLATE
IMAGE_MASKr   r   r   r   r      sG        DGDEF,KF KJJJr   r   c                       e Zd ZdZdZdZdS )ColorSpacesz
/DeviceRGBz/DeviceCMYKz/DeviceGrayN)r   r   r   
DEVICE_RGBDEVICE_CMYKDEVICE_GRAYr   r   r   r   r      s        JKKKKr   r   c                   "    e Zd ZdZdZdZdZdZdS )TypArguments#Table 8.2 of the PDF 1.7 reference.z/Leftz/Rightz/Bottomz/TopN)r   r   r   r   LEFTRIGHTBOTTOMTOPr   r   r   r   r      s(        --DEF
CCCr   r   c                   2    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
S )TypFitArgumentsr   z/Fitz/FitVz/FitBVz/FitBz/FitHz/FitBHz/FitRz/XYZN)r   r   r   r   FITFIT_VFIT_BVFIT_BFIT_HFIT_BHFIT_RXYZr   r   r   r   r      s<        --
CEFEEFE
CCCr   r   c                       e Zd ZdZdZdS )GoToActionArgumentsz/Sz/DN)r   r   r   SDr   r   r   r   r     s        AAAAr   r   c                   J    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdS )AnnotationDictionaryAttributesz8TABLE 8.15 Entries common to all annotation dictionariesrf   r   z/Rectro   r'   z/NMz/Mr   z/APz/ASz/Borderz/Cz/StructParentz/OCN)r   r   r   r   r   SubtypeRectContentsr+   NMMr   APASBorderCStructParentOCr   r   r   r   r     sZ        BBDGDHA	BAA	B	BFA"L	BBBr   r   c                   .    e Zd ZdZdZdZdZdZdZdZ	dZ
d	S )
InteractiveFormDictEntriesz/Fieldsz/NeedAppearancesz	/SigFlagsz/COz/DRz/DAz/Qz/XFAN)r   r   r   FieldsNeedAppearancesSigFlagsCODRDAQXFAr   r   r   r   r     s6        F(OH	B	B	BA
CCCr   r   c                       e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZedeedf         fd            Zedeeef         fd            ZdS )FieldDictionaryAttributeszHTABLE 8.69 Entries common to all field dictionaries (PDF 1.7 reference).z/FTrh   rg   z/Tz/TUz/TMz/Ffz/Vz/DVrp   return.c           
      ~    | j         | j        | j        | j        | j        | j        | j        | j        | j        | j	        f
S N)
TMTFTParentTUFfVDVKidsr   clss    r   
attributesz$FieldDictionaryAttributes.attributes3  s@     FEFJFFEFHF
 	
r   c                 v    | j         d| j        d| j        d| j        d| j        d| j        d| j        d| j        diS )	Nz
Field Typer   z
Field NamezAlternate Field NamezMapping NamezField FlagsValuezDefault Value)r   r   r   r  r   r  r  r  r  s    r   attributes_dictz)FieldDictionaryAttributes.attributes_dictB  sG     FLJE<F*FNFME7FO	
 		
r   N)r   r   r   r   r   r   r  r   r  r   r  r  r  r   classmethodr   strr  r   r  r   r   r   r   r   %  s        RR	BFDA	B	B	BA	B	B
5c? 
 
 
 [
 

S#X 

 

 

 [

 

 

r   r   c                   n    e Zd ZdZdZedeedf         fd            Zede	eef         fd            Z
dS )CheckboxRadioButtonAttributesz0TABLE 8.76 Field flags common to all field typesz/Optr   .c                     | j         fS r   Optr  s    r   r  z(CheckboxRadioButtonAttributes.attributesU  s    zr   c                     | j         diS )NOptionsr  r  s    r   r  z-CheckboxRadioButtonAttributes.attributes_dictY  s     GY
 	
r   N)r   r   r   r   r  r  r   r  r  r   r  r   r   r   r  r  P  s{        ::
C5c?    [ 
S#X 
 
 
 [
 
 
r   r  c                       e Zd ZdZdZdZdZdS )	FieldFlagz0TABLE 8.70 Field flags common to all field typesr/   r0   r1   N)r   r   r   r   	READ_ONLYREQUIRED	NO_EXPORTr   r   r   r  r  `  s#        ::IHIIIr   r  c                   6    e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdS )DocumentInformationAttributesz:TABLE 10.2 Entries in the document information dictionary.z/Titlez/Authorz/Subjectz	/Keywordsz/Creatorz	/Producerz/CreationDatez/ModDatez/TrappedN)r   r   r   r   TITLEAUTHORSUBJECTKEYWORDSCREATORPRODUCERCREATION_DATEMOD_DATETRAPPEDr   r   r   r  r  h  sA        DDEFGHGH#MHGGGr   r  c                   "    e Zd ZdZdZdZdZdZdS )PageLayoutszPage 84, PDF 1.4 reference.z/SinglePagez
/OneColumnz/TwoColumnLeftz/TwoColumnRightN)r   r   r   r   SINGLE_PAGE
ONE_COLUMNTWO_COLUMN_LEFTTWO_COLUMN_RIGHTr   r   r   r&  r&  v  s+        %%KJ&O(r   r&  c                   "    e Zd ZdZdZdZdZdZdS )GraphicsStateParameterszTable 4.8 of the 1.7 reference.rf   z/LWr[   z/SMaskN)r   r   r   r   ri   LWra   S_MASKr   r   r   r,  r,    s(        ))D	BDFFFr   r,  c                       e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdS )CatalogDictionaryz Table 3.25 in the 1.7 reference.rf   z/Versionr
   z/PageLabelsr!   r"   z/ViewerPreferencesz/PageLayoutz	/PageModer   r	   z/OpenActionrp   z/URIz	/AcroFormrq   z/StructTreeRootz	/MarkInfoz/Langz/SpiderInfoz/OutputIntentsrr   z/OCPropertiesz/Permsz/Legalz/Requirementsz/Collectionz/NeedsRenderingN) r   r   r   r   ri   VERSIONr   PAGE_LABELSr#   r$   VIEWER_PREFERENCESPAGE_LAYOUT	PAGE_MODEr   r   OPEN_ACTIONr   URI	ACRO_FORMr   STRUCT_TREE_ROOT	MARK_INFOLANGSPIDER_INFOOUTPUT_INTENTSr   OC_PROPERTIESPERMSLEGALREQUIREMENTS
COLLECTIONNEEDS_RENDERINGr   r   r   r0  r0    s        **DGEKEE-KIHGK	B
CIH(IDK%NJ#MEE"LJ'OOOr   r0  c                       e Zd ZdZdZdZdS )OutlineFontFlagzK
    A class used as an enumerable flag for formatting an outline font
    r/   r0   N)r   r   r   r   italicboldr   r   r   rE  rE    s$          FDDDr   rE  N)$r   enumr   typingr   r   r   r   r    r&   r.   rY   re   rn   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r&  r,  r0  rE  PDF_KEYSr   r   r   <module>rK     s%                                      
* * * * * * * *" " " " "G " " "J
 
 
 
 
 
 
 
       ! ! ! ! ! ! ! !H       " " " " " " " "        	 	 	 	 	 	 	 	" " " " " " " "
: 
: 
: 
: 
: 
: 
: 
:                             
 
 
 
 
 
 
 
       
       &       (
 (
 (
 (
 (
 (
 (
 (
V
 
 
 
 
 
 
 
               ) ) ) ) ) ) ) )       ( ( ( ( ( ( ( (B    g    #!!&3r   