a
    Qh.                     @   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
 sJ |d r|d dsJ |d sJ 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 rt| |jd ||d |jd< q| d
i  D ]"\}}	| |	 |	j|d
 |< qL| di  D ]8\}}
d|
v rd|
d v r|
d d j|
d d< qd 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'rt$|*j'|
jd$< |*j(rt$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/rt$t.|*j/d,|
jd-< |*j0rt$|*j0|
j1d.< |d/ r|*j2  D ]F\}+},d0)d1d2 |+D }+|+j3d3d4d54 }+|+rt$|,|
j|+< q|*j56 }-|d6 rJ|d6 D ]*}.t7|.t8s<t8|.| j9d7}.|-|. qg }/|-D ]&}.t:|
|.|}0|0d urR|/|0 qR|/rtd8t i}1t|/D ],\}2}0|1d8 |0d9  |1d8 |0j
 q|
	|1 d8|
j1vrt |
j1d8< |1j
|
j1d8 d:< |d;  }3t;|
| j||3|}4|
	|4 d<|
j1v rTtd=d>d?d@}5|
	|5 |5j
|4dA< |4j
|dB< t<|
|| |rt }6t=|D ](}7|6t$|7d  |6|7dC  qtd8|6i}8d8|
j1vrt |
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