U
    Ž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   6/tmp/pip-unpacked-wheel-_wxctax1/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 |rd nt d	}|	 D ]D\}}	|| j kr| j |n|	}
|
r|
|j
|d  |d
d   < q|   |  |  |dt d | g}|r@| j dg }|D ]}| j  |_ || q"d}g }g }g }|D ]} d
}|rz
| j}W n tk
r   Y nX ||7 }t|D ]F}||d ||d ||d |j|d  qqT|  d}|D ]}|rt|n|g}|D ]~} d}d }d }| jdkrBd}td}d}n| jdkrbd}td}d}n| jdkrd}|  }tdtddt|g}d}nd| jdkrd}td}d}nD| jdkrd}td}d}d
dd
dd
dd
dg}ntd| j t ! }|dkr6t"#| |d d!| j$ d| jfg n|dkrTt%j&d" | || nh|d#krt"#| |d$d!| j$ d| jfg n<|d%krt"#| |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q|+  t,|d2r|-  |.  d S )3N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	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   )
streamTypeZSubtypeZWidthZHeightFilterZBitsPerComponentZDecodeZDecodeParamsZ
ColorSpacePDF)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   r1   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widthheightZpage_contentsr   r   r   r	   0   s    







"

"
"




r	   r&   z.pdfzapplication/pdf)F)r9   r*   r.    r   r   r   r   r   r   r	   Zregister_saveZregister_save_allZregister_extensionZregister_mimer   r   r   r   <module>   s   
 ;