a
    ù!f#  ã                   @   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   úS/var/www/html/python-backend/venv/lib/python3.9/site-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¡}|rV|d }|d }n| j  d	d
¡ }}|rpd ntj tj |¡¡d d d d d d |r˜d nt ¡ |r¦d nt ¡ dœ}	|	 	¡ D ]D\}
}|
| j v rØ| j  |
¡n|}|rº||j
|
d  ¡ |
dd …  < qº|  ¡  | ¡  | ¡  | dt› d¡ | g}|rf| j  dg ¡}|D ]}| j  ¡ |_ | |¡ qHd}g }g }g }|D ]ˆ} d}|r¨z
| j}W n ty¦   Y n0 ||7 }t|ƒD ]F}| | d¡¡ | | d¡¡ | | d¡¡ |j |d ¡ q¸qz| ¡  d}|D ]p}|r*t |¡n|g}|D ]L} d}d }d }| j\}}| jdkr¢t d¡rŽd}d}t t  dd||dœ¡g¡}nd}t !d¡}d} nØ| jdkrÂd}t !d¡}d} n¸| jdkrþd}|  "¡ }!t !d¡t !d¡dt #|!¡g}d} n|| jd krd}t !d¡}d!} n\| jd"kr>d#}t !d¡}d!} n<| jd$krfd}t !d%¡}d!} g d&¢}nd'| j› }"t$|"ƒ‚t% &¡ }#|dkr®t' (| |#d(d)| j d| jfg¡ nØ|dkrÞ| j)|#d*d+t* +| j,d ¡| j- d, n¨|dkrüt.j/d- | |#|ƒ nŠ|d#krt.j/d. | |#|ƒ nl|d/krFt' (| |#d0d)| j d| jfg¡ n@|d1krrt' (| |#d2d)| j d| jfg¡ nd3|› d4}"t$|"ƒ‚|# 0¡ }$|dkr¸|$dd … }$t t !|¡g¡}n
t !|¡}|j1|| |$t !d5¡t !d6¡|||||||d7 |j2|| tj t !d8¡t !| ¡gtj || d9d:dd|d
 | |d
 | g|| d; d<|d
 | |d
 | f }%|j1|| |%d= |d7 }q4q| 3¡  t4|d>ƒr¤| 5¡  | 6¡  d S )?NÚappendFzr+b)Úfr   Úmodezw+bÚdpir   r   Ú
resolutiong      R@)ÚtitleÚauthorÚsubjectÚkeywordsZcreatorZproducerZcreationDateZmodDatezcreated by Pillow z PDF driverÚappend_imageséÿÿÿÿé   Ú1ZlibtiffZCCITTFaxDecodeT)ÚKZBlackIs1ÚColumnsZRowsZ	DCTDecodeZ
DeviceGrayZImageBÚLÚPZASCIIHexDecodeZIndexedZ	DeviceRGBéÿ   ZImageIÚRGBZImageCZRGBAZ	JPXDecodeZCMYKZ
DeviceCMYK)r   r   r   r   r   r   r   r   zcannot save mode Úhex)r   r   ZTIFFZgroup4)ÚcompressionZ
strip_sizeZJPEGZJPEG2000Z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   Zx_resolutionZy_resolutionr7   Ú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ÚdecoderF   rG   ÚfilterZ
colorspaceZprocsetÚpaletteÚmsgÚopr)   Zpage_contentsr   r   r   r
   1   sL   
ÿö 



üÿÿÿ

ü




"
û


"
"

õþ

üô

þr
   r,   z.pdfzapplication/pdf)F)rA   rD   r0   r4   Ú r   r   r   r   r   r   r   r
   Zregister_saveZregister_save_allZregister_extensionZregister_mimer   r   r   r   Ú<module>   s    
 g