o
    ë6Wj½$  ã                   @  s®   d dl mZ d dlZd dlZd dlZd dlZd dlmZmZ ddl	m
Z
mZmZmZmZ ddd„Zd dd„Z	d!d"dd„Ze
 de¡ e
 de¡ e
 dd¡ e
 dd¡ dS )#é    )ÚannotationsN)ÚIOÚAnyé   )ÚImageÚ	ImageFileÚImageSequenceÚ	PdfParserÚfeaturesÚimúImage.ImageÚfpú	IO[bytes]Úfilenameústr | bytesÚreturnÚNonec                 C  s   t | ||dd� d S )NT)Úsave_all)Ú_save)r   r   r   © r   úa/home/esfera/Documents/content_generation/venv/lib/python3.10/site-packages/PIL/PdfImagePlugin.pyÚ	_save_all+   s   r   Úexisting_pdfúPdfParser.PdfParserÚ
image_refsú!list[PdfParser.IndirectReference]ú'tuple[PdfParser.IndirectReference, str]c                 C  s   d }d }| j \}}ddi}| jdkr8t d¡r,d}	d|d< t t dd||d	œ¡g¡}nd
}	t d¡|d< d}
n¥| jdkrId
}	t d¡|d< d}
n”| jdkrWd}	d}
d|d< n†| jdkrŸd}	|  ¡ }|d ushJ ‚t d¡t d¡t	|ƒd d t 
|¡g|d< d}
d| jv rž|  d¡ d¡}i |_t||||ƒd }||d< n>| jdkr°d
}	t d¡|d< d}
n-| jdkr¾d}	d}
d|d< n| jdkrÓd
}	t d ¡|d< d}
g d!¢}n
d"| j› �}t|ƒ‚t ¡ }|	dkrøt | |t d#d$| j  d| j¡g¡ nI|	dk�r| j|d%d&t |d ¡| d'� n3|	d
k�r!dd(lm} | | ||¡ n |	dk�r7dd)lm} |d= | | ||¡ n
d*|	› d+�}t|ƒ‚| ¡ }|	dk�rZ|dd … }t t |	¡g¡}nt |	¡}| d¡}|j|f|t d,¡t d-¡|||||d.œ|¤Ž ||
fS )/NÚBitsPerComponenté   Ú1ÚlibtiffÚCCITTFaxDecoder   éÿÿÿÿT)ÚKÚBlackIs1ÚColumnsÚRowsÚ	DCTDecodeÚ
DeviceGrayÚ
ColorSpaceÚImageBÚLÚLAÚ	JPXDecodeÚSMaskInDataÚPÚASCIIHexDecodeÚIndexedÚ	DeviceRGBé   ÚImageIÚtransparencyÚAr   ÚSMaskÚRGBÚImageCÚRGBAÚCMYKÚ
DeviceCMYK)r   r   r   r   r   r   r   r   zcannot save mode Úhex)r   r   ÚTIFFÚgroup4)ÚcompressionÚ
strip_size)ÚJpegImagePlugin)ÚJpeg2KImagePluginzunsupported PDF filter (ú)ÚXObjectr   )ÚstreamÚTypeÚSubtypeÚWidthÚHeightÚFilterÚDecodeÚDecodeParms)ÚsizeÚmoder
   Úcheckr	   ÚPdfArrayÚPdfDictÚPdfNameÚ
getpaletteÚlenÚ	PdfBinaryÚinfoÚconvertÚ
getchannelÚencoderinfoÚ_write_imageÚ
ValueErrorÚioÚBytesIOr   r   Ú_TileÚsaveÚmathÚceilÚ rB   rC   ÚgetvalueÚpopÚ	write_obj)r   r   r   r   ÚparamsÚdecodeÚwidthÚheightÚdict_objÚdecode_filterÚprocsetÚpaletteÚsmaskÚ	image_refÚmsgÚoprB   rC   rF   Úfilterr   r   r   r[   3   sÈ   



üÿÿÿ



ü
€




&
û




ÿ÷
ör[   Fr   Úboolc              
   C  s  | j  dd¡}t|tƒr| ¡ n|}|rtj||dd�}ntj||dd�}| j  d¡}|r6|d }|d }	n	| j  d	d
¡ }}	|rCd ntj tj 	|¡¡d d d d d d |rWd nt
 ¡ |r^d nt
 ¡ dœ}
|
 ¡ D ]"\}}|| j v rw| j  |¡n|}|rŠ||j|d  ¡ |dd …  < qh|  ¡  | ¡  | ¡  | d¡ | g}|r¸| j  dg ¡}|D ]}| j  ¡ |_ | |¡ qªd}g }g }g }|D ]I} d}|rÎt| ddƒ}||7 }t|ƒD ]4}| | d¡¡ | jdkròd| jv rò| | d¡¡ | | d¡¡ | | d¡¡ |j |d ¡ qÖqÂ| ¡  d}|D ]f}|�rt |¡n|g}|D ]U} t| |||ƒ\}}|j|| tjt  d¡t  |¡gtj|d�d�dd| j!d
 | | j"d
 |	 g|| d� d| j!d
 | | j"d
 |	 f }|j#|| |d� |d7 }�q#�q| $¡  t%|dƒ�r‰| &¡  | '¡  d S )NÚappendFzr+b)Úfr   rO   zw+bÚdpir   r   Ú
resolutiong      R@)ÚtitleÚauthorÚsubjectÚkeywordsÚcreatorÚproducerÚcreationDateÚmodDatezcreated by Pillow PDF driverÚappend_imagesÚn_framesr/   r5   r"   ÚPDF)Úimage)ÚProcSetrE   )Ú	ResourcesÚMediaBoxÚContentss   q %f 0 0 %f 0 0 cm /image Do Q
)rF   Úflush)(rZ   ÚgetÚ
isinstanceÚbytesrh   r	   ÚosÚpathÚsplitextÚbasenameÚtimeÚgmtimeÚitemsrW   ÚupperÚloadÚstart_writingÚwrite_headerÚwrite_commentÚcopyru   ÚgetattrÚrangeÚnext_object_idrO   ÚpagesÚwrite_catalogr   ÚIteratorr[   Ú
write_pagerR   rS   ri   rj   rf   Úwrite_xref_and_trailerÚhasattrr‰   Úclose)r   r   r   r   Úis_appendingÚfilename_strr   rw   Úx_resolutionÚy_resolutionrW   ÚkÚdefaultÚvÚimsr�   Ú	append_imÚnumber_of_pagesr   Ú	page_refsÚcontents_refsÚim_number_of_pagesÚiÚpage_numberÚim_sequenceÚim_pagesrp   rm   Úpage_contentsr   r   r   r   ¼   s¤   
ö€
ùÿ
þüôþá#r   rƒ   z.pdfzapplication/pdf)r   r   r   r   r   r   r   r   )
r   r   r   r   r   r   r   r   r   r   )F)
r   r   r   r   r   r   r   rt   r   r   )Ú
__future__r   r]   ra   r�   r‘   Útypingr   r   rc   r   r   r   r	   r
   r   r[   r   Úregister_saveÚregister_save_allÚregister_extensionÚregister_mimer   r   r   r   Ú<module>   s    

 ÿz