U
    c4                     @   s  d Z ddlmZ ddlmZmZ G dd dZG dd dZG dd	 d	ZG d
d dZ	G dd deZ
G dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG dd dZG d d! d!ZG d"d# d#ZG d$d% d%ZG d&d' d'ZG d(d) d)ZG d*d+ d+ZG d,d- d-ZG d.d/ d/ZG d0d1 d1ZG d2d3 d3eZG d4d5 d5ZG d6d7 d7ZG d8d9 d9Z G d:d; d;Z!G d<d= d=eZ"G d>d? d?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 )Aa  
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                   @   s$   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THREADSZPAGEPAGESZCATALOG r   r   3/tmp/pip-unpacked-wheel-u_n6aelj/pypdf/constants.pyr      s   r   c                   @   s    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   ROOTZENCRYPTIDINFOZSIZEr   r   r   r   r      s
   r   c                   @   s   e Zd ZdZdZdS )CatalogAttributes/Names/DestsN)r	   r
   r   NAMESDESTSr   r   r   r   r   !   s   r   c                   @   s$   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
    /Rz/Oz/U/Pz/EncryptMetadataN)	r	   r
   r   r   ROUPZENCRYPT_METADATAr   r   r   r   r   &   s   r   c                   @   s   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   ZR1ZR2ZPRINTZMODIFYZEXTRACTZADD_OR_MODIFYZR7ZR8ZFILL_FORM_FIELDSZEXTRACT_TEXT_AND_GRAPHICSZASSEMBLE_DOCZPRINT_TO_REPRESENTATIONZR13ZR14ZR15ZR16ZR17ZR18ZR19ZR20ZR21ZR22ZR23ZR24ZR25ZR26ZR27ZR28ZR29ZR30ZR31ZR32r   r   r   r   r#   4   sB   r#   c                   @   s0   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   ZEXT_G_STATECOLOR_SPACEZPATTERNZSHADINGZXOBJECTFONTZPROC_SETZ
PROPERTIESr   r   r   r   r-   Y   s   r-   c                   @   s    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   TYPEZKIDSZCOUNTPARENTr   r   r   r   r2   f   s
   r2   c                   @   s   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.r3   r5   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   r6   r7   ZLAST_MODIFIEDZ	RESOURCESZMEDIABOXZCROPBOXZBLEEDBOXZTRIMBOXZARTBOXZBOX_COLOR_INFOZCONTENTSZROTATEZGROUPZTHUMBBZDURZTRANSZANNOTSAAMETADATA
PIECE_INFOZSTRUCT_PARENTSr   ZPZZTABSZTEMPLATE_INSTANTIATEDZ
PRES_STEPSZ	USER_UNITZVPr   r   r   r   r8   o   s>   r8   c                   @   s    e Zd ZdZdZdZdZdZdS )"FileSpecificationDictionaryEntriesz6TABLE 3.41 Entries in a file specification dictionary.r3   z/FS/Fz/EFN)r	   r
   r   r   TypeZFSFZEFr   r   r   r   rA      s
   rA   c                   @   s   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   ZLENGTHZFILTERZDECODE_PARMSr   r   r   r   rE      s   rE   c                   @   s,   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   ZASCII_HEX_DECODEZASCII_85_DECODEZ
LZW_DECODEZFLATE_DECODEZRUN_LENGTH_DECODEZCCITT_FAX_DECODEZ
DCT_DECODEr   r   r   r   rF      s   rF   c                   @   s,   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   ZAHxZA85ZLZWZFLZRLZCCFZDCTr   r   r   r   rG      s   rG   c                   @   s$   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   Z	PREDICTORCOLUMNSCOLORSBITS_PER_COMPONENTZEARLY_CHANGEr   r   r   r   rH      s   rH   c                   @   s0   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/EncodedByteAlignrI   z/Rowsz/EndOfBlockz	/BlackIs1z/DamagedRowsBeforeErrorN)r	   r
   r   r   KZEND_OF_LINEZENCODED_BYTE_ALIGNrK   ZROWSZEND_OF_BLOCKZ
BLACK_IS_1ZDAMAGED_ROWS_BEFORE_ERRORr   r   r   r   rN      s   rN   c                   @   s8   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.r3   /Subtypez/Namez/Widthz/HeightrJ   r.   z/Decodez/Interpolatez
/ImageMaskN)r	   r
   r   r   r6   ZSUBTYPENAMEZWIDTHZHEIGHTrM   r0   ZDECODEZINTERPOLATEZ
IMAGE_MASKr   r   r   r   rP      s   rP   c                   @   s   e Zd ZdZdZdZdS )ColorSpacesz
/DeviceRGBz/DeviceCMYKz/DeviceGrayN)r	   r
   r   Z
DEVICE_RGBZDEVICE_CMYKZDEVICE_GRAYr   r   r   r   rS      s   rS   c                   @   s    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RIGHTZBOTTOMZTOPr   r   r   r   rT      s
   rT   c                   @   s0   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
S )TypFitArgumentsrU   z/Fitz/FitVz/FitBVz/FitBz/FitHz/FitBHz/FitRz/XYZN)r	   r
   r   r   ZFITZFIT_VZFIT_BVZFIT_BZFIT_HZFIT_BHZFIT_RZXYZr   r   r   r   rX      s   rX   c                   @   s   e Zd ZdZdZdS )GoToActionArgumentsz/S/DN)r	   r
   r   SDr   r   r   r   rY     s   rY   c                   @   sH   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 )AnnotationDictionaryAttributesz9TABLE 8.15 Entries common to all annotation dictionaries.r3   rQ   z/Rectr9   r   z/NMz/MrB   z/APz/ASz/Borderz/Cz/StructParentz/OCN)r	   r
   r   r   rC   ZSubtypeZRectZContentsr"   ZNMMrD   ZAPZASZBorderCZStructParentZOCr   r   r   r   r]     s   r]   c                   @   s,   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   ZFieldsZNeedAppearancesZSigFlagsZCOZDRZDAQZXFAr   r   r   r   r`     s   r`   c                   @   sl   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eedf dddZeeeef dddZdS )FieldDictionaryAttributeszHTABLE 8.69 Entries common to all field dictionaries (PDF 1.7 reference).z/FTr5   r4   z/Tz/TUz/TMz/Ffz/Vz/DVr:   .returnc              
   C   s,   | j | j| j| j| j| j| j| j| j| j	f
S N)
TMTFTParentTUFfVDVKidsr>   clsr   r   r   
attributes3  s    z$FieldDictionaryAttributes.attributesc                 C   s4   | j d| jd| jd| jd| jd| jd| jd| jdiS )	Nz
Field Typeri   z
Field NamezAlternate Field NamezMapping NamezField FlagsValuezDefault Value)rh   ri   rg   rj   rf   rk   rl   rm   ro   r   r   r   attributes_dictB  s"            z)FieldDictionaryAttributes.attributes_dictN)r	   r
   r   r   rh   ri   rn   rg   rj   rf   rk   rl   rm   r>   classmethodr   strrq   r   rs   r   r   r   r   rb   %  s   rb   c                   @   sH   e Zd ZdZdZeeedf dddZee	eef dddZ
d	S )
CheckboxRadioButtonAttributesz1TABLE 8.76 Field flags common to all field types.z/Opt.rc   c                 C   s   | j fS re   Optro   r   r   r   rq   U  s    z(CheckboxRadioButtonAttributes.attributesc                 C   s
   | j diS )NOptionsrw   ro   r   r   r   rs   Y  s     z-CheckboxRadioButtonAttributes.attributes_dictN)r	   r
   r   r   rx   rt   r   ru   rq   r   rs   r   r   r   r   rv   P  s   rv   c                   @   s   e Zd ZdZdZdZdZdS )	FieldFlagz1TABLE 8.70 Field flags common to all field types.r$   r%   r&   N)r	   r
   r   r   Z	READ_ONLYZREQUIREDZ	NO_EXPORTr   r   r   r   rz   `  s   rz   c                   @   s4   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   ZTITLEZAUTHORZSUBJECTZKEYWORDSZCREATORZPRODUCERZCREATION_DATEZMOD_DATEZTRAPPEDr   r   r   r   r{   h  s   r{   c                   @   s    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   ZSINGLE_PAGEZ
ONE_COLUMNZTWO_COLUMN_LEFTZTWO_COLUMN_RIGHTr   r   r   r   r|   v  s
   r|   c                   @   s    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.r3   z/LWr/   z/SMaskN)r	   r
   r   r   r6   ZLWr1   ZS_MASKr   r   r   r   r}     s
   r}   c                   @   s   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.r3   z/Versionr   z/PageLabelsr   r   z/ViewerPreferencesz/PageLayoutz	/PageModer   r   z/OpenActionr:   z/URIz	/AcroFormr;   z/StructTreeRootz	/MarkInfoz/Langz/SpiderInfoz/OutputIntentsr<   z/OCPropertiesz/Permsz/Legalz/Requirementsz/Collectionz/NeedsRenderingN) r	   r
   r   r   r6   VERSIONr   ZPAGE_LABELSr   r   ZVIEWER_PREFERENCESZPAGE_LAYOUTZ	PAGE_MODEr   r   ZOPEN_ACTIONr>   URIZ	ACRO_FORMr?   ZSTRUCT_TREE_ROOTZ	MARK_INFOLANGZSPIDER_INFOZOUTPUT_INTENTSr@   ZOC_PROPERTIESZPERMSZLEGALZREQUIREMENTSZ
COLLECTIONZNEEDS_RENDERINGr   r   r   r   r~     s:   r~   c                   @   s   e Zd ZdZdZdZdS )OutlineFontFlagzBA class used as an enumerable flag for formatting an outline font.r$   r%   N)r	   r
   r   r   ZitalicZboldr   r   r   r   r     s   r   c                   @   s$   e Zd ZdZdZdZdZdZdZdS )PageLabelStylez Table 8.10 in the 1.7 reference.rZ   z/rr   z/az/AN)	r	   r
   r   r   ZDECIMALZLOWERCASE_ROMANZUPPERCASE_ROMANZLOWERCASE_LETTERZUPPERCASE_LETTERr   r   r   r   r     s   r   N)%r   enumr   typingr   r   r   r   r   r   r#   r-   r2   r8   rA   rE   rF   rG   rH   rN   rP   rS   rT   rX   rY   r]   r`   rb   rv   rz   r{   r|   r}   r~   r   r   ZPDF_KEYSr   r   r   r   <module>   st   

%	$	
	+	
!