o
    pèÝcd!  ã                   @   s†   d dl Z d dlZd dlZd dlZddlmZmZmZmZm	Z	m
Z
 dd„ Zddd„Ze d	e¡ e d	e¡ e d	d
¡ e d	d¡ dS )é    Né   )ÚImageÚ	ImageFileÚImageSequenceÚ	PdfParserÚ__version__Úfeaturesc                 C   s   t | ||dd d S )NT)Úsave_all)Ú_save)ÚimÚfpÚfilename© r   ú2lib/python3.10/site-packages/PIL/PdfImagePlugin.pyÚ	_save_all)   s   r   Fc           $      C   s<  | j  dd¡}|rtj||dd}ntj||dd}| j  dd¡}|r%d ntj tj |¡¡d d d d d d |r9d nt ¡ |r@d nt ¡ d	œ}| 	¡ D ]"\}}	|| j v rY| j  |¡n|	}
|
rl|
|j
|d  ¡ |d
d …  < qJ|  ¡  | ¡  | ¡  | dt› d¡ | g}|rž| j  dg ¡}|D ]}| j  ¡ |_ | |¡ qd}g }g }g }|D ]@} d
}|r½z| j}W n	 ty¼   Y nw ||7 }t|ƒD ]"}| | d¡¡ | | d¡¡ | | d¡¡ |j |d ¡ qÅq¨| ¡  d}|D ]—}|rût |¡n|g}|D ]‡} d}d }d }| j\}}| jdkr7t d¡r-d}d
}t t  dd||dœ¡g¡}nd}t !d¡}d}n\| jdkrGd}t !d¡}d}nL| jdkred}|  "¡ }t !d¡t !d¡dt #|¡g}d}n.| jdkrud}t !d¡}d }n| jd!kr‰d}t !d"¡}d }g d#¢}n
d$| j› } t$| ƒ‚t% &¡ }!|dkr­t' (| |!d%d&| j d| jfg¡ n]|dkrÅ| j)|!d'd(t* +| j,d ¡| j- d) nE|dkrÔt.j/d* | |!|ƒ n6|d+krêt' (| |!d,d&| j d| jfg¡ n |d-kr t' (| |!d.d&| j d| jfg¡ n
d/|› d0} t$| ƒ‚|! 0¡ }"|dkr#|"dd … }"t t !|¡g¡}nt !|¡}|j1|| |"t !d1¡t !d2¡|||||||d3 |j2|| tj t !d4¡t !|¡gtj || d5d6dd|d | |d | g|| d7 d8|d | |d | f }#|j1|| |#d9 |d
7 }q qñ| 3¡  t4|d:ƒr˜| 5¡  | 6¡  d S );NÚappendFzr+b)Úfr   Úmodezw+bÚ
resolutiong      R@r   )ÚtitleZauthorÚsubjectÚkeywordsZcreatorZproducerZcreationDateZmodDater   zcreated by Pillow z PDF driverÚappend_imageséÿÿÿÿé   Ú1ZlibtiffZCCITTFaxDecodeT)ÚKZBlackIs1ZColumnsZRowsZ	DCTDecodeZ
DeviceGrayZImageBÚLÚPZASCIIHexDecodeZIndexedZ	DeviceRGBéÿ   ZImageIZRGBZImageCZCMYKZ
DeviceCMYK)r   r   r   r   r   r   r   r   zcannot save mode Úhex)r   r   ZTIFFZgroup4)ÚcompressionZ
strip_sizeZJPEGZFlateDecodeÚzipZRunLengthDecodeZpackbitszunsupported PDF filter (ú)ÚXObjectr   )
ÚstreamZTypeZSubtypeZWidthZHeightZFilterZBitsPerComponentZDecodeZDecodeParmsZ
ColorSpaceÚPDF)Zimage)ZProcSetr$   )Z	ResourcesZMediaBoxZContentss   q %f 0 0 %f 0 0 cm /image Do Q
)r%   Úflush)7ZencoderinfoÚgetr   ÚosÚpathÚsplitextÚbasenameÚtimeÚgmtimeÚitemsÚinfoÚupperÚloadZstart_writingZwrite_headerZwrite_commentr   Úcopyr   Zn_framesÚAttributeErrorÚrangeZnext_object_idZpagesZwrite_catalogr   ÚIteratorÚsizer   r   ÚcheckZPdfArrayZPdfDictZPdfNameZ
getpaletteZ	PdfBinaryÚ
ValueErrorÚioÚBytesIOr   r
   ZsaveÚmathZceilÚwidthÚheightr   ZSAVEÚgetvalueZ	write_objZ
write_pageZwrite_xref_and_trailerÚhasattrr'   Úclose)$r   r   r   r	   Zis_appendingZexisting_pdfr   r0   ÚkÚdefaultÚvZimsr   Z	append_imZnumber_of_pagesZ
image_refsZ	page_refsZcontents_refsZim_number_of_pagesÚiZpage_numberZim_sequenceZim_pagesÚbitsÚparamsÚdecoder=   r>   ÚfilterZ
colorspaceZprocsetZpaletteÚmsgÚopr%   Zpage_contentsr   r   r   r
   1   sD  ÿö€
ýü


üÿÿÿ

ü



"
û

"
"

õþ

üô

þ ÷ r
   r&   z.pdfzapplication/pdf)F)r:   r<   r)   r-   Ú r   r   r   r   r   r   r   r
   Zregister_saveZregister_save_allZregister_extensionZregister_mimer   r   r   r   Ú<module>   s    
 \