o
    î6÷d0$  ã                   @   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   úiC:\Users\jesus\OneDrive\Desktop\erpjis_fastapi\backend\jisbackend\Lib\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¡}|r+|d }|d }n	| j  d	d
¡ }}|r8d ntj tj |¡¡d d d d d d |rLd nt ¡ |rSd nt ¡ dœ}	|	 	¡ D ]"\}
}|
| j v rl| 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}|rÐz| j}W n	 tyÏ   Y nw ||7 }t|ƒD ]"}| | d¡¡ | | d¡¡ | | d¡¡ |j |d ¡ qØq»| ¡  d}|D ]¸}|rt |¡n|g}|D ]¦} d}d }d }| j\}}| jdkrKt d¡rAd}d}t t  dd||dœ¡g¡}nd}t !d¡}d} nl| jdkr[d}t !d¡}d} n\| jdkryd}|  "¡ }!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r­d}t !d%¡}d!} g d&¢}n
d'| j› }"t$|"ƒ‚t% &¡ }#|dkrÑt' (| |#d(d)| j d| jfg¡ nl|dkré| j)|#d*d+t* +| j,d ¡| j- d, nT|dkrøt.j/d- | |#|ƒ nE|d#krt.j/d. | |#|ƒ n6|d/krt' (| |#d0d)| j d| jfg¡ n |d1kr3t' (| |#d2d)| j d| jfg¡ n
d3|› d4}"t$|"ƒ‚|# 0¡ }$|dkrV|$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 }q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   sX  
ÿö€
ýü


üÿÿÿ

ü




"
û


"
"

õþ

üô

þ ñ 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