U
    ®&^ª  ã                   @   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-install-a1j0c_p1/Pillow/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	œ}| 	¡ D ]D\}}	|| j kr²| j  |¡n|	}
|
r”|
|j
|d  ¡ |d
d …  < q”|  ¡  | ¡  | ¡  | d t¡¡ | g}|r>| j  dg ¡}|D ]}| j  ¡ |_ | |¡ q d}g }g }g }|D ]Š} d
}|r‚z
| j}W n tk
r€   Y nX ||7 }t|ƒD ]F}| | d¡¡ | | d¡¡ | | d¡¡ |j |d ¡ q’qR| ¡  d}|D ]Î}|rt |¡n|g}|D ]ª} d}d }| jdkr@d}t d¡}d}d
}n®| jdkr`d}t d¡}d}nŽ| jdkr d}| j d¡}t d¡t d¡dt  |¡g}d}nN| jdkrÀd}t d¡}d}n.| jdkràd}t d¡}d}nt!d| j ƒ‚t" #¡ }|dkrP|d
kr.|  $dd¡}t% &d| j'¡} |  (|¡ t) *| |d d!| j' d| jfg¡ n‚|dkrnt%j+d" | ||ƒ nd|d#kršt) *| |d$d!| j' d| jfg¡ n8|d%krÆt) *| |d&d!| j' d| jfg¡ nt!d'| ƒ‚| j'\}} |j,|| | -¡ t d(¡t d)¡|| t |¡|||d*
 |j.|| tj/t d+¡t |¡gtj/|| d,d-ddt0|d | ƒt0| d | ƒg|| d. t 1d/t0|d | ƒt0| d | ƒf ¡}!|j,|| |!d0 |d
7 }qqî| 2¡  t3|d1ƒrÜ| 4¡  | 5¡  d S )2NÚappendFzr+b)Úfr   Úmodezw+bÚ
resolutiong      R@r   )ÚtitleÚauthorÚsubjectÚkeywordsZcreatorZproducerZcreationDateZmodDater   zcreated by Pillow {} PDF driverÚappend_imageséÿÿÿÿé   Ú1ZASCIIHexDecodeZ
DeviceGrayZImageBÚLZ	DCTDecodeÚPZRGBZIndexedZ	DeviceRGBéÿ   ZImageIZImageCZCMYKZ
DeviceCMYKzcannot save mode %sÚrawÚhex)r   r   ZJPEGZFlateDecodeÚzipZRunLengthDecodeZpackbitszunsupported PDF filter (%s)ÚXObjectr   )	ÚstreamZTypeZSubtypeZWidthZHeightÚFilterZBitsPerComponentZDecodeParamsZ
ColorSpaceÚPDF)Úimage)ZProcSetr"   )Z	ResourcesZMediaBoxZContentszq %d 0 0 %d 0 0 cm /image Do Q
)r#   Úflush)6ZencoderinfoÚgetr   ÚosÚpathÚsplitextÚbasenameÚtimeÚgmtimeÚitemsÚinfoÚupperÚloadZstart_writingZwrite_headerZwrite_commentÚformatr   Úcopyr   Zn_framesÚAttributeErrorÚrangeZnext_object_idÚpagesZwrite_catalogr   ÚIteratorr   ZPdfNamer
   Z
getpaletteZ	PdfBinaryÚ
ValueErrorÚioÚBytesIOÚtobytesr   ÚnewÚsizeZputdatar   r	   ZSAVEZ	write_objÚgetvalueZ
write_pageZPdfDictÚintZ
make_bytesZwrite_xref_and_trailerÚhasattrr'   Úclose)"r
   r   r   r   Zis_appendingZexisting_pdfr   r0   ÚkÚdefaultÚvZimsr   Z	append_imZnumberOfPagesZ
image_refsZ	page_refsZcontents_refsZim_numberOfPagesÚiZ
pageNumberZ
imSequenceZim_pagesÚbitsÚparamsÚfilterZ
colorspaceZprocsetZpaletteÚopÚdataÚwidthÚheightZpage_contentsr   r   r   r	   0   s   ÿö 




ü




"

"
"
öþüôÿÿr	   r%   z.pdfzapplication/pdf)F)r:   r)   r-   Ú r   r   r   r   r   r   r	   Zregister_saveZregister_save_allZregister_extensionZregister_mimer   r   r   r   Ú<module>   s   
 ?