U
    ॡc0!                     @   s   d dl Z 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	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__featuresc                 C   s   t | ||dd d S )NT)save_all)_save)imfpfilename r   6/tmp/pip-unpacked-wheel-h_ukwjmx/PIL/PdfImagePlugin.py	_save_all)   s    r   Fc           #      C   sR  | 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 ]6}|rt|n|g}|D ]} d}d }d }| j\}}| jdkr~tdrjd}d
}tt dd||dg}nd}t!d}d}n| jdkrd}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r.d}t!d"}d }d
dd
dd
dd
dg}nt$d#| j t%& } |dkrrt'(| | d$d%| j d| jfg n|dkr| j)| d&d't*+| j,d | j- d( n|dkrt.j/d) | | | nh|d*krt'(| | d+d%| j d| jfg n<|d,krt'(| | d-d%| j d| jfg nt$d.| d/| 0 }!|dkrZ|!dd  }!tt!|g}n
t!|}|j1|| |!t!d0t!d1|||||||d2 |j2|| tj t!d3t!|gtj || d4d5dd|d | |d | g|| d6 d7|d | |d | f }"|j1|| |"d8 |d
7 }qq|3  t4|d9rF|5  |6  d S ):N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libtiffZCCITTFaxDecodeT)KZBlackIs1ZColumnsZRowsZ	DCTDecodeZ
DeviceGrayZImageBLPZASCIIHexDecodeZIndexedZ	DeviceRGB   ZImageIZRGBZImageCZCMYKZ
DeviceCMYKzcannot save mode hex)r   r   ZTIFFZgroup4)compressionZ
strip_sizeZJPEGZFlateDecodezipZRunLengthDecodeZpackbitszunsupported PDF filter ()XObjectr   )
streamTypeZSubtypeZWidthZHeightFilterZBitsPerComponentZDecodeZDecodeParmsZ
ColorSpacePDF)image)ZProcSetr%   )Z	ResourcesZMediaBoxZContentss   q %f 0 0 %f 0 0 cm /image Do Q
)r&   flush)7Z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   Iteratorsizer   r   checkZPdfArrayZPdfDictZPdfNameZ
getpaletteZ	PdfBinary
ValueErrorioBytesIOr   r
   savemathceilwidthheightr   ZSAVEgetvalueZ	write_objZ
write_pageZwrite_xref_and_trailerhasattrr+   close)#r   r   r   r	   Zis_appendingZexisting_pdfr   r4   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bitsparamsdecoderC   rD   filterZ
colorspaceZprocsetZpaletteopr&   Zpage_contentsr   r   r   r
   1   s4    








"


"
"





r
   r)   z.pdfzapplication/pdf)F)r>   rA   r-   r1    r   r   r   r   r   r   r   r
   Zregister_saveZregister_save_allZregister_extensionZregister_mimer   r   r   r   <module>   s    
 Z