a
    ¥Q•hö.  ã                   @   sê   d Z ddlmZ ddlZddlmZmZ ddlmZm	Z	 ddl
mZ ddlmZmZ dd	lmZ d
dlmZmZmZ d
dlmZ d
dlmZ d
dlmZmZmZmZmZmZ dd„ ejejejfD ƒZdd„ Z dd„ Z!dd„ Z"dd„ Z#dS )zPDF generation management.é    )ÚfilesN)ÚD50ÚD65é   )ÚVERSIONÚ
Attachment)ÚW3C_DATE_RE)ÚLOGGERÚPROGRESS_LOGGER)ÚMatrixé   )ÚdebugÚpdfaÚpdfua)Úbuild_fonts_dictionary)ÚStream)Úadd_annotationsÚ	add_formsÚ	add_linksÚadd_outlinesÚresolve_linksÚwrite_pdf_attachmentc                 C   s$   i | ]}|  ¡ D ]\}}||“qqS © )Úitems)Ú.0ÚvariantsÚnameÚdatar   r   úP/var/www/sistema_ama/venv/lib/python3.9/site-packages/weasyprint/pdf/__init__.pyÚ
<dictcomp>   s   ÿr   c           	      C   s  | du rdS t  | ¡}|du r8t d|› d| ›�¡ dS | ¡ }d}|d }dD ]4}|| rnd}|| | }qP|rP|dv d	›|› �}qP|d rø|d
 sšJ ‚|d rð|d  d¡s´J ‚|d sÀJ ‚t|d ƒ}t|d ƒ}||d›d|d	›�7 }n|d7 }d|› �S )z Tranform W3C date to PDF format.NzInvalid z date: Ú Úhour)ÚsecondÚminuter!   ÚdayÚmonthÚyearT)r$   r%   Ú02dr#   Útz_hour)ú+ú-Ú	tz_minutez+03dú'ÚZzD:)r   Úmatchr	   ÚwarningÚ	groupdictÚ
startswithÚint)	ÚstringÚ	attr_namer.   ÚgroupsZpdf_dateÚfoundÚkeyr(   r+   r   r   r   Ú_w3c_date_to_pdf   s2    
r8   c                 C   s<   d|v r |d d u sJ ‚||d< t | ||ƒ |  |¡ |jS )NÚFont)Ú_use_referencesÚ
add_objectÚ	reference)ÚpdfÚ	resourcesÚimagesÚfontsr   r   r   Ú_reference_resources7   s    
rA   c                 C   s¾  |  di ¡ ¡ D ]Ð\}}|d u rt|| }|d }|d urH|j|d |< q|d }t|d ƒ}| |d |¡}||d< |  |¡ |j|d |< d|jv r¸|  |jd ¡ |jd j|jd< d|jv rt| |jd ||d ƒ|jd< q|  d	i ¡ ¡ D ]H\}}|  |¡ |j|d	 |< d|jv ròt| |jd ||d ƒ|jd< qò|  d
i ¡ ¡ D ]"\}}	|  |	¡ |	j|d
 |< �qL|  di ¡ ¡ D ]8\}}
d|
v �r€d|
d v �r€|
d d j|
d d< �q€d S )NÚXObjectÚx_objectÚimageZ
dpi_ratiosÚinterpolateÚSMaskÚ	Resourcesr9   ÚPatternÚShadingÚ	ExtGStateÚG)Úgetr   r<   ÚmaxÚget_x_objectr;   ÚextrarA   )r=   r>   r?   r7   rC   Ú
image_datarD   Ú	dpi_ratioÚpatternÚshadingÚalphar   r   r   r:   @   sB    


ÿ

ÿ
r:   c           :      K   s`  |d }t  d¡ d}|d }|d }|rVt| \}}	d|	v rF|	d }d|	v rV|	d }t ¡ }
i }t t dt t t¡t d¡d	œ¡f¡t dt t t¡t d¡d	œ¡f¡d
œ¡}|
 	|¡ t t ¡ t ¡ t ¡ t ¡ |j
dœ¡}|
 	|¡ g }tt| jƒƒ}i }g g  }}|d  }tt| j|ƒƒD �]T\}\}}t|dd| d|j| ƒ}||j|jd  |jd   }||j|jd  |jd   }| |jd  }| |jd  }|| }|| }|| || || | || | f}t| j|||||d�}|jd|j| d� |
 	|¡ | |¡ t d|
jj
t ||||g¡|j
|j
dœ¡} |�rdd| d< || d< |
 | ¡ | | ¡ t|||
| ||ƒ t|d || |
| ||ƒ t|j||
| ||| jjƒ | ||¡ dd„ |j  ¡ D ƒ}!||!d  }"||!d  }#||!d  }$||!d  }%|"t!d|!d ƒ }&|#t!d|!d ƒ }'|$t!d|!d ƒ }(|%t!d|!d ƒ })t |"|#|$|%g¡| d< t |&|'|(|)g¡| d< �q,t"|
| j#|dd �ƒ t  d!¡ t $d"t%› �¡|
jd#< | j&}*|*j'�rØt $|*j'¡|
jd$< |*j(�røt $d% )|*j(¡¡|
jd&< |*j*�rt $|*j*¡|
jd'< |*j+�r2t $d% )|*j+¡¡|
jd(< |*j,�rLt $|*j,¡|
jd)< |*j-�rlt $t.|*j-d*ƒ¡|
jd+< |*j/�rŒt $t.|*j/d,ƒ¡|
jd-< |*j0�r¦t $|*j0¡|
j1d.< |d/ �r|*j2  ¡ D ]F\}+},d0 )d1d2„ |+D ƒ¡}+|+j3d3d4d5� 4¡ }+|+�rºt $|,¡|
j|+< �qº|*j5 6¡ }-|d6 �rJ|d6 D ]*}.t7|.t8ƒ�s<t8|.| j9d7�}.|- |.¡ �qg }/|-D ]&}.t:|
|.|ƒ}0|0d u�rR|/ |0¡ �qR|/�rüt d8t ¡ i¡}1t|/ƒD ],\}2}0|1d8  |0d9 ¡ |1d8  |0j
¡ �qš|
 	|1¡ d8|
j1v�rìt ¡ |
j1d8< |1j
|
j1d8 d:< |d;  }3t;|
| j||3|ƒ}4|
 	|4¡ d<|
j1v �rTt d=d>d?d@œ¡}5|
 	|5¡ |5j
|4dA< |4j
|dB< t<|
||ƒ |�ràt ¡ }6t=|ƒD ](}7|6 t $|7d ¡¡ |6 |7dC ¡ �q€t d8|6i¡}8d8|
j1v�rÒt ¡ |
j1d8< |8|
j1d8 dD< |�rDtjt>t?ƒdE  @¡ gt dFdGdHœ¡|d�}9|
 	|9¡ t t dIdJt $dK¡|9j
dLœ¡g¡|
j1dM< |�r\||
|*| ||-|ƒ |
S )NNç      è?zStep 6 - Creating PDFFÚsrgbÚpdf_variantÚmarkz/Lab)éƒÿÿÿé}   rY   rZ   )Ú
WhitePointÚRange)zlab-d50zlab-d65)rJ   rB   rH   rI   Ú
ColorSpaceÚuncompressed_pdfr   ÚleftÚrightÚtopÚbottom)Úcompresséÿÿÿÿ)ÚdÚfz/Page)ÚTypeÚParentÚMediaBoxÚContentsrG   z/SZTabsZStructParentsc                 S   s   i | ]\}}||d  “qS )rU   r   )r   r7   Úvaluer   r   r   r   Î   ó    z generate_pdf.<locals>.<dictcomp>é
   ZTrimBoxZBleedBoxT)Útransform_pageszStep 7 - Adding PDF metadatazWeasyPrint ÚProducerÚTitlez, ÚAuthorÚSubjectÚKeywordsÚCreatorÚcreatedÚCreationDateÚmodifiedÚModDateÚLangÚcustom_metadatar    c                 s   s   | ]}|  ¡ r|V  qd S )N)Úisalnum)r   Úcharr   r   r   Ú	<genexpr>ý   rl   zgenerate_pdf.<locals>.<genexpr>ÚasciiÚignore)ÚerrorsÚattachments)Úurl_fetcherZNamesÚFZEmbeddedFilesÚ
full_fontsÚAcroFormz/Fontz/Type1z/ZapfDingbats)rg   ÚSubtypeÚBaseFontZZaDbr9   r   ZDestszsRGB2014.iccé   z
/DeviceRGB)ÚNZ	Alternatez/OutputIntentz
/GTS_PDFA1zsRGB IEC61966-2.1)rg   ÚSZOutputConditionIdentifierZDestOutputProfileZOutputIntents)Ar
   ÚinfoÚVARIANTSÚpydyfÚPDFÚ
DictionaryÚArrayr   r   r;   r<   Úlistr   ÚpagesÚ	enumerateÚzipr   ÚheightÚwidthÚbleedr   r@   Ú	transformÚappendÚadd_pager   r   r   ÚformsÚfont_configÚfont_mapÚpaintr   Úminr   Úmake_bookmark_treeÚStringr   ÚmetadataÚtitleÚauthorsÚjoinÚdescriptionÚkeywordsÚ	generatorru   r8   rw   ÚlangÚcatalogÚcustomÚencodeÚdecoder�   ÚcopyÚ
isinstancer   r‚   r   r   r:   Úsortedr   Ú__package__Ú
read_bytes):ÚdocumentÚtargetÚzoomÚoptionsÚscalerX   rV   ÚvariantZvariant_functionÚ
propertiesr=   r?   Úcolor_spacer>   Z	pdf_namesZpage_links_and_anchorsZannot_filesZ	pdf_pagesZpage_streamsrc   Úpage_numberÚpageZlinks_and_anchorsÚmatrixÚ
page_widthÚpage_heightr_   ra   r`   rb   Úpage_rectangleÚstreamZpdf_pager—   Z	trim_leftZtrim_topZ
trim_rightZtrim_bottomÚ
bleed_leftÚ	bleed_topÚbleed_rightÚbleed_bottomr¢   r7   rk   r�   Ú
attachmentZpdf_attachmentsZpdf_attachmentÚcontentÚiÚsubsetZ	pdf_fontsZdingbatsZ
name_arrayÚanchorZdestsZprofiler   r   r   Úgenerate_pdfr   s‚   

þ

þ
û

û



ÿÿÿþÿ

û

þþÿ
ÿ

ÿ

ÿ



ÿ


ÿ
ý


ý
üÿ
ÿrË   )$Ú__doc__Úimportlib.resourcesr   r�   Útinycss2.color4r   r   r    r   r   Úhtmlr   Úloggerr	   r
   r½   r   r   r   r   r@   r   rÁ   r   Úanchorsr   r   r   r   r   r   rŒ   r8   rA   r:   rË   r   r   r   r   Ú<module>   s$    ÿ	2