o
    Z#a                     @   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   4/usr/lib/python3/dist-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}|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 ]K}|rt|n|g}|D ];} d}d }d }| jdkrd}td}d}d
}nZ| jdkr+d}td}d}nJ| jdkrId}|  }tdtddt|g}d}n,| jdkrYd}td}d}n| jdkrmd}td}d}g d}ntd | j t ! }|dkrt"#| |d!d"| j$ d| jfg 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(| 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|| d0 d1|d | | d | f }!|j'|| |!d2 |d
7 }q q|+  t,|d3rL|-  |.  d S )4N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	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   JPEGFlateDecodezipRunLengthDecodepackbitszunsupported PDF filter ()XObjectr   )
streamTypeSubtypeWidthHeightFilterBitsPerComponentDecodeDecodeParams
ColorSpacePDF)image)ProcSetr5   )	ResourcesMediaBoxContentss   q %f 0 0 %f 0 0 cm /image Do Q
)r6   flush)/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   Iteratorr   PdfName
getpalette	PdfBinary
ValueErrorioBytesIOr   r	   sizer   SAVE	write_objgetvalue
write_pagePdfDictwrite_xref_and_trailerhasattrrF   close)"r
   r   r   r   is_appendingexisting_pdfr   rP   kdefaultvimsr   	append_imnumberOfPages
image_refs	page_refscontents_refsim_numberOfPagesi
pageNumber
imSequenceim_pagesbitsparamsdecodefilter
colorspaceprocsetpaletteopwidthheightpage_contentsr   r   r   r	   0   s  








"

"
"




lr	   r@   z.pdfzapplication/pdf)F)rb   rI   rM    r   r   r   r   r   r   r	   register_saveregister_save_allregister_extensionregister_mimer   r   r   r   <module>   s   
 <