a
    [Xh.                     @   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   \/var/www/viveiro_mudafortebrasil/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%   Z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    
r7   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    
r@   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_ratiosZinterpolateZSMask	Resourcesr8   PatternShading	ExtGStateG)getr   r;   maxZget_x_objectr:   extrar@   )r<   r=   r>   r6   rB   Z
image_datarC   Z	dpi_ratiopatternZshadingalphar   r   r   r9   @   sB    





r9   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srgbZpdf_variantmarkz/Lab)}   rQ   rR   )Z
WhitePointRange)zlab-d50zlab-d65)rG   rA   rE   rF   Z
ColorSpaceZuncompressed_pdfr   leftrighttopbottom)compress)dfz/Page)TypeZParentZMediaBoxZContentsrD   z/SZTabsZStructParentsc                 S   s   i | ]\}}||d  qS )rN   r   )r   r6   valuer   r   r   r          z generate_pdf.<locals>.<dictcomp>
   ZTrimBoxZBleedBoxT)Ztransform_pageszStep 7 - Adding PDF metadatazWeasyPrint ZProducerZTitlez, ZAuthorSubjectZKeywordsZCreatorcreatedZCreationDatemodifiedZModDateZLangZcustom_metadatar    c                 s   s   | ]}|  r|V  qd S )N)isalnum)r   charr   r   r   	<genexpr>   r^   zgenerate_pdf.<locals>.<genexpr>asciiignore)errorsattachments)url_fetcherZNamesFZEmbeddedFilesZ
full_fontsZAcroFormz/Fontz/Type1z/ZapfDingbats)r\   ZSubtypeZBaseFontZZaDbr8   r   ZDestszsRGB2014.icc   z
/DeviceRGB)NZ	Alternatez/OutputIntentz
/GTS_PDFA1zsRGB IEC61966-2.1)r\   SZOutputConditionIdentifierZDestOutputProfileZOutputIntents)Ar
   infoVARIANTSpydyfZPDFZ
DictionaryArrayr   r   r:   r;   listr   Zpages	enumeratezipr   heightwidthbleedr   r?   Z	transformappendZadd_pager   r   r   ZformsZfont_configZfont_mapZpaintr   minr   Zmake_bookmark_treeStringr   metadatatitleZauthorsjoindescriptionkeywords	generatorra   r7   rb   langcatalogZcustomencodedecoderi   copy
isinstancer   rj   r   r   r9   sortedr   __package__
read_bytes):documenttargetZzoomoptionsZscalerP   rO   variantZvariant_functionZ
propertiesr<   r>   Zcolor_spacer=   Z	pdf_namesZpage_links_and_anchorsZannot_filesZ	pdf_pagesZpage_streamsrX   Zpage_numberpageZlinks_and_anchorsmatrixZ
page_widthZpage_heightrT   rV   rU   rW   Zpage_rectanglestreamZpdf_pagerx   Z	trim_leftZtrim_topZ
trim_rightZtrim_bottomZ
bleed_leftZ	bleed_topZbleed_rightZbleed_bottomr|   r6   r]   ri   
attachmentZpdf_attachmentsZpdf_attachmentcontentiZsubsetZ	pdf_fontsZdingbatsZ
name_arrayanchorZdestsZprofiler   r   r   generate_pdfr   s   
































r   )$__doc__importlib.resourcesr   rq   Ztinycss2.color4r   r   r    r   r   htmlr   loggerr	   r
   r   r   r   r   r   r?   r   r   r   Zanchorsr   r   r   r   r   r   rp   r7   r@   r9   r   r   r   r   r   <module>   s$    	2