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  ¡ |_ | |¡ q�d}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�r�t" #| |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   )ÚtitleÚauthorÚsubjectÚkeywordsÚcreatorÚproducerÚcreationDateÚmodDater   zcreated by Pillow z PDF driverÚappend_imageséÿÿÿÿé   Ú1Ú	DCTDecodeÚ
DeviceGrayÚImageBÚLÚPÚASCIIHexDecodeÚIndexedÚ	DeviceRGBéÿ   ÚImageIÚRGBÚImageCÚCMYKÚ
DeviceCMYK)r   r   r   r   r   r   r   r   zcannot save mode Úhex)r   r   ÚJPEGÚFlateDecodeÚzipÚRunLengthDecodeÚpackbitszunsupported PDF filter (ú)ÚXObjectr   )
ÚstreamÚTypeÚSubtypeÚWidthÚHeightÚFilterÚBitsPerComponentÚDecodeÚDecodeParamsÚ
ColorSpaceÚPDF)Úimage)ÚProcSetr5   )Ú	ResourcesÚMediaBoxÚContentss   q %f 0 0 %f 0 0 cm /image Do Q
)r6   Úflush)/ÚencoderinfoÚgetr   ÚosÚpathÚsplitextÚbasenameÚtimeÚgmtimeÚitemsÚinfoÚupperÚloadÚstart_writingÚwrite_headerÚwrite_commentr   Úcopyr   Ún_framesÚAttributeErrorÚrangeÚnext_object_idÚpagesÚwrite_catalogr   ÚIteratorr   ÚPdfNameÚ
getpaletteÚ	PdfBinaryÚ
ValueErrorÚioÚBytesIOr   r	   Úsizer   ÚSAVEÚ	write_objÚgetvalueÚ
write_pageÚPdfDictÚwrite_xref_and_trailerÚhasattrrF   Úclose)"r
   r   r   r   Úis_appendingÚexisting_pdfr   rP   ÚkÚdefaultÚvÚimsr   Ú	append_imÚnumberOfPagesÚ
image_refsÚ	page_refsÚcontents_refsÚim_numberOfPagesÚiÚ
pageNumberÚ
imSequenceÚim_pagesÚbitsÚparamsÚdecodeÚfilterÚ
colorspaceÚprocsetÚpaletteÚopÚwidthÚheightÚpage_contentsr   r   r   r	   0   s  ÿö€
ýü



ü



"

"
"
õþ

üô

þ˜lr	   r@   z.pdfzapplication/pdf)F)rb   rI   rM   Ú r   r   r   r   r   r   r	   Úregister_saveÚregister_save_allÚregister_extensionÚregister_mimer   r   r   r   Ú<module>   s   
 <