B
    àz÷b¥  ã               @   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   ú1lib/python3.7/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¡}|rJd ntj tj |¡¡d d d d d d |rrd nt ¡ |r€d nt ¡ d	œ}xP| 	¡ D ]D\}}	|| j kr´| j  |¡n|	}
|
r–|
|j
|d  ¡ |d
d …  < q–W |  ¡  | ¡  | ¡  | dt› d¡ | g}|rH| j  dg ¡}x$|D ]}| j  ¡ |_ | |¡ q(W d}g }g }g }x–|D ]Ž} d
}|rŽy
| j}W n tk
rŒ   Y nX ||7 }xRt|ƒD ]F}| | d¡¡ | | d¡¡ | | d¡¡ |j |d ¡ q W q^W | ¡  d}x²|D ]¨}|rt |¡n|g}xˆ|D ]~} d}d }d }| jdkrZd}t d¡}d}nÀ| jdkrzd}t d¡}d}n | jdkr¶d}|  ¡ }t d¡t d¡dt |¡g}d}nd| jdkrÖd}t d¡}d}nD| jdkr
d}t d¡}d}d
dd
dd
dd
dg}ntd| j› ƒ‚t  !¡ }|dkrNt" #| |d d!| j$ d| jfg¡ n†|dkrlt%j&d" | ||ƒ nh|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|| d/ d0|d | | d | f }!|j'|| |!d1 |d
7 }q(W qW | +¡  t,|d2ƒrÎ| -¡  | .¡  d S )3NÚappendFzr+b)Úfr   Úmodezw+bÚ
resolutiong      R@r   )ÚtitleZauthorZ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
DeviceCMYKz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ÚtimeZ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number_of_pagesZ
image_refsZ	page_refsZcontents_refsZim_number_of_pagesÚiZpage_numberZim_sequenceZim_pagesÚbitsZparamsÚdecodeÚfilterZ
colorspaceZprocsetZpaletteÚopÚwidthZheightZpage_contentsr   r   r   r	   0   sò    "







"

"
"


r	   r"   z.pdfzapplication/pdf)F)r3   r%   r)   Ú r   r   r   r   r   r   r	   Zregister_saveZregister_save_allZregister_extensionZregister_mimer   r   r   r   Ú<module>   s   
 ;