a
    ¥Q•hT"  ã                   @   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„ 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   úK/var/www/sistema_ama/venv/lib/python3.9/site-packages/PIL/PdfImagePlugin.pyÚ	_save_all)   s    r   c                 C   sä  d }d }| j \}}ddi}| jdkrrt d¡rXd}	d|d< t t dd||d	œ¡g¡}nd
}	t d¡|d< d}
�n>| jdkr–d
}	t d¡|d< d}
�n| jdkr²d}	d}
d|d< nþ| jdk�r.d}	|  ¡ }t d¡t d¡dt 	|¡g|d< d}
d| j
v �r°|  d¡ d¡}i |_t||||ƒd }||d< n‚| jdk�rRd
}	t d¡|d< d}
n^| jdk�rpd}	d}
d|d< n@| jdk�rœd
}	t d ¡|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 |d ¡| d'� nV|	d
k�r.tjd( | ||ƒ n8|	dk�rR|d= tjd) | ||ƒ nd*|	› d+�}t|ƒ‚| ¡ }|	dk�r˜|dd … }t t |	¡g¡}	n
t |	¡}	| d¡}|j|f|t d,¡t d-¡|||	||d.œ|¤Ž ||
fS )/NÚBitsPerComponenté   Ú1ÚlibtiffZCCITTFaxDecoder   éÿÿÿÿT)ÚKZBlackIs1ÚColumnsZRowsÚ	DCTDecodeÚ
DeviceGrayÚ
ColorSpaceZImageBÚLÚLAZ	JPXDecodeZSMaskInDataÚPZASCIIHexDecodeÚIndexedÚ	DeviceRGBéÿ   ZImageIÚtransparencyÚAr   ÚSMaskÚRGBZImageCÚRGBAÚCMYKÚ
DeviceCMYK)r   r   r   r   r   r   r   r   zcannot save mode Úhex)r   r   ÚTIFFÚgroup4)ÚcompressionÚ
strip_sizeÚJPEGÚJPEG2000zunsupported PDF filter (ú)ÚXObjectr   )ÚstreamÚTypeÚSubtypeÚWidthÚHeightÚFilterÚDecodeÚDecodeParms)ÚsizeÚmoder   Úcheckr   ZPdfArrayÚPdfDictÚPdfNameÚ
getpaletteZ	PdfBinaryÚinfoÚconvertÚ
getchannelÚencoderinfoÚ_write_imageÚ
ValueErrorÚioÚBytesIOr   r
   ÚsaveÚmathÚceilr   ÚSAVEÚgetvalueÚpopÚ	write_obj)r   r   Úexisting_pdfÚ
image_refsÚparamsÚdecodeÚwidthÚheightÚdict_objÚfilterÚprocsetÚpaletteÚsmaskÚ	image_refÚmsgÚopr1   r   r   r   rC   1   sÀ    


üÿÿÿ


ü



"
û




ÿ÷
örC   Fc              
   C   s2  | 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 ]n}| | d¡¡ | jdk�rôd| j
v �rô| | d¡¡ | | d¡¡ | | d¡¡ |j |d ¡ �q¸�qz| ¡  d}|D ]Ì}|�rPt |¡n|g}|D ]ª} t| |||ƒ\}}|j|| tjt d¡t |¡gtj|d�d�dd| j d
 | | j!d
 | g|| d� d| j d
 | | j!d
 | f }|j"|| |d� |d7 }�qZ�q<| #¡  t$|dƒ�r&| %¡  | &¡  d S )NÚappendFzr+b)Úfr   r:   zw+bÚdpir   r   Ú
resolutiong      R@)ÚtitleÚauthorÚsubjectÚkeywordsÚcreatorÚproducerZcreationDateZmodDatezcreated by Pillow z PDF driverÚappend_imagesr   r!   r   ÚPDF)Úimage)ÚProcSetr0   )Ú	ResourcesÚMediaBoxÚContentss   q %f 0 0 %f 0 0 cm /image Do Q
)r1   Úflush)'rB   Úgetr   ÚosÚpathÚsplitextÚbasenameÚtimeÚgmtimeÚitemsr?   ÚupperÚloadZstart_writingZwrite_headerZwrite_commentr   Úcopyr\   Ún_framesÚAttributeErrorÚrangeZnext_object_idr:   ÚpagesZwrite_catalogr   ÚIteratorrC   Z
write_pager<   r=   rR   rS   rM   Zwrite_xref_and_trailerÚhasattrrm   Úclose)r   r   r   r	   Zis_appendingrN   r^   Úx_resolutionÚy_resolutionr?   ÚkÚdefaultÚvÚimsrf   Z	append_imZnumber_of_pagesrO   Z	page_refsZcontents_refsZim_number_of_pagesÚiÚpage_numberZim_sequenceZim_pagesrY   rV   Zpage_contentsr   r   r   r
   ¯   s¤    
ÿö 

þüôþr
   rg   z.pdfzapplication/pdf)F)rE   rH   ro   rs   Ú r   r   r   r   r   r   r   rC   r
   Úregister_saveÚregister_save_allÚregister_extensionÚregister_mimer   r   r   r   Ú<module>   s    ~
z