a
    QhT"                     @   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rd
}	td|d< d}
n| jdkrd}	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rd
}	td |d< d}
g d!}nd"| j }t|t }|	dkrt| |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 |rd nt |rd 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}|rz
| j}W n ty   Y n0 ||7 }t|D ]n}||d | jdkrd| 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