o
    1ή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   9/tmp/pip-target-vg8gfxp4/lib/python/PIL/PdfImagePlugin.py	_save_all)   s   r   Fc           #      C   s4  | 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  |_ || qd}g }g }g }|D ]@} d
}|rz| j}W n	 ty   Y nw ||7 }t|D ]"}||d ||d ||d |j|d  qq|  d}|D ]}|rt|n|g}|D ]} d}d }d }| j\}}| jdkr7tdr-d}d
}tt dd||dg}nd}t!d}d}nZ| jdkrGd}t!d}d}nJ| jdkred}| " }t!dt!ddt#|g}d}n,| jdkrud}t!d}d }n| jd!krd}t!d"}d }g d#}nt$d$| j t%& } |dkrt'(| | d%d&| j d| jfg n[|dkr| j)| d'd(t*+| j,d | j- d) nC|dkrt.j/d* | | | n4|d+krt'(| | d,d&| j d| jfg n|d-krt'(| | d.d&| j d| jfg nt$d/| d0| 0 }!|dkr|!dd  }!tt!|g}nt!|}|j1|| |!t!d1t!d2|||||||d3 |j2|| tj t!d4t!|gtj || d5d6dd|d | |d | g|| d7 d8|d | |d | f }"|j1|| |"d9 |d
7 }q q|3  t4|d:r|5  |6  d S );N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libtiffCCITTFaxDecodeT)KBlackIs1ColumnsRows	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   TIFFgroup4)compression
strip_sizeJPEGFlateDecodezipRunLengthDecodepackbitszunsupported PDF filter ()XObjectr   )
streamTypeSubtypeWidthHeightFilterBitsPerComponentDecodeDecodeParms
ColorSpacePDF)image)ProcSetr@   )	ResourcesMediaBoxContentss   q %f 0 0 %f 0 0 cm /image Do Q
)rA   flush)7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   Iteratorsizer   r   checkPdfArrayPdfDictPdfName
getpalette	PdfBinary
ValueErrorioBytesIOr   r
   savemathceilwidthheightr   SAVEgetvalue	write_obj
write_pagewrite_xref_and_trailerhasattrrQ   close)#r   r   r   r	   is_appendingexisting_pdfr   r[   kdefaultvimsr   	append_imnumber_of_pages
image_refs	page_refscontents_refsim_number_of_pagesipage_numberim_sequenceim_pagesbitsparamsdecoderv   rw   filter
colorspaceprocsetpaletteoprA   page_contentsr   r   r   r
   1   s@  









"


"
"





  r
   rK   z.pdfzapplication/pdf)F)rq   rt   rT   rX    r   r   r   r   r   r   r   r
   register_saveregister_save_allregister_extensionregister_mimer   r   r   r   <module>   s    
 Z