o
    e?"  ã                   @   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   úBD:\Projects\ConvertPro\env\Lib\site-packages\PIL/PdfImagePlugin.pyÚ	_save_all)   s   r   Fc           #      C   s4  | 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}nZ| jdkrGd}t !d¡}d}nJ| 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t$d$| j› ƒ‚t% &¡ } |dkr«t' (| | d%d&| j d| jfg¡ n[|dkrÃ| j)| d'd(t* +| j,d ¡| j- d) nC|dkrÒt.j/d* | | |ƒ n4|d+krèt' (| | d,d&| j d| jfg¡ n|d-krþt' (| | d.d&| j d| jfg¡ nt$d/|› d0ƒ‚|  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   )ÚtitleÚauthorÚsubjectÚkeywordsZcreatorZproducerZcreationDateZmodDater   zcreated by Pillow z PDF driverÚappend_imageséÿÿÿÿé   Ú1ZlibtiffZCCITTFaxDecodeT)ÚKZBlackIs1ÚColumnsZRowsZ	DCTDecodeZ
DeviceGrayZImageBÚLÚPZASCIIHexDecodeZIndexedZ	DeviceRGBéÿ   ZImageIÚ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   )
ÚstreamÚTypeZSubtypeZWidthZHeightÚFilterZBitsPerComponentZDecodeZDecodeParmsZ
ColorSpaceÚPDF)Ú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
   ÚsaveÚmathÚ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   r6   Ú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ÚdecoderE   rF   ÚfilterZ
colorspaceZprocsetÚpaletteÚopr(   Zpage_contentsr   r   r   r
   1   s@  ÿö€
ýü


üÿÿÿ

ü



"
û

"
"

õþ

üô

þ ù r
   r+   z.pdfzapplication/pdf)F)r@   rC   r/   r3   Ú r   r   r   r   r   r   r   r
   Zregister_saveZregister_save_allZregister_extensionZregister_mimer   r   r   r   Ú<module>   s    
 Z