o
    Z#ûa¨  ã                   @   sz   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 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__c                 C   s   t | ||dd d S )NT)Úsave_all)Ú_save)ÚimÚfpÚfilename© r   ú4/usr/lib/python3/dist-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 ]K}|rût |¡n|g}|D ];} d}d }d }| jdkrd}t d¡}d}d
}nZ| jdkr+d}t d¡}d}nJ| jdkrId}|  ¡ }t d¡t d¡dt |¡g}d}n,| jdkrYd}t d¡}d}n| jdkrmd}t d¡}d}g d¢}ntd | j› ƒ‚t  !¡ }|dkrt" #| |d!d"| j$ d| jfg¡ 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(|› d)ƒ‚| j$\}} |j'|| | (¡ t d*¡t d+¡|| t |¡||||d, |j)|| tj*t d-¡t |¡gtj*|| d.d/dd|d | | d | g|| d0 d1|d | | d | f }!|j'|| |!d2 |d
7 }q qñ| +¡  t,|d3ƒrL| -¡  | .¡  d S )4NÚ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	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JPEGZFlateDecodeÚzipZRunLengthDecodeZpackbitszunsupported PDF filter (ú)ÚXObjectr   )
ÚstreamZTypeZSubtypeZWidthZHeightZFilterZBitsPerComponentZDecodeZDecodeParamsZ
ColorSpaceÚPDF)Zimage)ZProcSetr!   )Z	ResourcesZMediaBoxZContentss   q %f 0 0 %f 0 0 cm /image Do Q
)r"   Úflush)/Z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   ÚIteratorr   ZPdfNameZ
getpaletteZ	PdfBinaryÚ
ValueErrorÚioÚBytesIOr   r	   Úsizer   ZSAVEZ	write_objÚgetvalueZ
write_pageZPdfDictZwrite_xref_and_trailerÚhasattrr$   Úclose)"r
   r   r   r   Zis_appendingZexisting_pdfr   r-   ÚkÚdefaultÚvZimsr   Z	append_imZnumberOfPagesZ
image_refsZ	page_refsZcontents_refsZim_numberOfPagesÚiZ
pageNumberZ
imSequenceZim_pagesÚbitsÚparamsÚdecodeÚfilterZ
colorspaceZprocsetZpaletteÚopÚwidthZheightZpage_contentsr   r   r   r	   0   s  ÿö€
ýü



ü



"

"
"
õþ

üô

þ˜lr	   r#   z.pdfzapplication/pdf)F)r5   r&   r*   Ú r   r   r   r   r   r   r	   Zregister_saveZregister_save_allZregister_extensionZregister_mimer   r   r   r   Ú<module>   s   
 <