o
    ôSk[t  ã                   @   s¬   d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZmZ d dlmZmZmZ d dlZd dlZe d	¡Zd
d„ Z		ddd„Z	 		ddd„ZdS )é    N)ÚpisaContext)ÚDEFAULT_CSS)Ú
pisaParser)ÚSpacer)ÚFrame)Ú
PmlBaseDocÚPmlPageTemplate)ÚpisaTempFileÚgetBoxÚPyPDF2Ú	xhtml2pdfc              	   C   sª   t |jd�}| d|j ¡ |jD ]\}}}}|dkr(| d||t |¡f ¡ q| d|j ¡ |jD ]\}}}}|dkrK| d||t |¡f ¡ q4t| 	¡ | dd	�S )
N©ÚcapacityzI<p style='background-color:red;'><strong>%d error(s) occured:</strong><p>Úerrorz<pre>%s in line %d: %s</pre>z-<p><strong>%d warning(s) occured:</strong><p>Úwarningz<p>%s in line %d: %s</p>F)Úraise_exception)
r	   r   ÚwriteÚerrÚlogÚcgiÚescapeÚwarnÚpisaDocumentÚgetvalue)ÚdestÚcÚoutÚmodeÚlineÚmsgÚ_© r!   úD/var/www/html/env/lib/python3.10/site-packages/xhtml2pdf/document.pyÚpisaErrorDocument   s   €€r#   Fc	                 K   s€   |st ||d�}||_|d u rt}t| |||||ƒ |js$tddƒg|_|jr.|j |j¡ |jD ]\}
}||j	vr=d |
_
q1|S )N)Údebugé   )r   ÚpathCallbackr   r   Ústoryr   Úindexing_storyÚappendÚ
anchorFragÚ
anchorNameÚlink)ÚsrcÚpathÚlink_callbackr$   Údefault_cssÚxhtmlÚencodingÚcontextÚ
xml_outputÚkwÚfragÚanchorr!   r!   r"   Ú	pisaStory.   s   
€r8   Té � c                 K   sL  t  d| |||||¡ t|||
d�}|d ur|j |¡ ||_t| ||||||||d�	}t ¡ }t	||j
|jd  ¡ |jd  ¡ dd„ |jd  ¡  d	¡D ƒ|jd
  ¡ ddd�}d|jv rh|jd }|jd= ntd|j
ƒ\}}}}tdt||||dddddd�	g|j
d�}| |gt|j ¡ ƒ ¡ |jr�| |j¡ n| |j¡ t�r|jD ][}|�r|}t ¡ }t |¡}d}|jD ]8}| |¡}|rä| ¡ sä|jdkrät | ¡ ¡}| d¡}| |¡ |}n	t   | !d|¡¡ | "|¡ |d7 }q¾t#|j$d�}| %|¡  nq©nt   | !d¡¡ |d u �rt ¡ }||_&| '¡ }|j& %|¡ |S )NznpisaDocument options:
  src = %r
  dest = %r
  path = %r
  link_callback = %r
  xhtml = %r
  context_meta = %r)r$   r   )r3   r4   ÚauthorÚsubjectc                 S   s   g | ]}|r|  ¡ ‘qS r!   )Ústrip)Ú.0Úxr!   r!   r"   Ú
<listcomp>k   s    ÿz pisaDocument.<locals>.<listcomp>Úkeywordsú,Útitler   r%   )Úpagesizer:   r;   r@   rB   ÚshowBoundaryÚallowSplittingÚbodyz1cm 1cm -1cm -1cm)ÚidÚleftPaddingÚrightPaddingÚbottomPaddingÚ
topPadding)rG   ÚframesrC   zapplication/pdfz Background PDF %s doesn't exist.r   zPyPDF2 not installed!)(r   r$   r   ÚmetaÚupdater&   r8   ÚioÚBytesIOr   ÚpageSizer<   ÚsplitÚtemplateListr
   r   r   ÚaddPageTemplatesÚlistÚvaluesÚ
multiBuildr'   Úbuildr   ÚpisaBackgroundListÚPdfFileWriterÚPdfFileReaderÚgetPageÚnotFoundÚmimetypeÚgetFileÚ	mergePager   r   ÚaddPager	   r   r   r   r   )r-   r   r.   r/   r$   r0   r1   r2   r4   r   r   Úcontext_metar5   r3   r   ÚdocrF   r>   ÚyÚwÚhÚbgouterÚistreamÚoutputÚinput1ÚctrÚbgÚpageÚbginputÚpagebgÚdatar!   r!   r"   r   K   s¦   ú	ÿÿ÷



ûÿ÷



ÿÿ


ÿ


å€
r   )NNr   NFNNN)NNNr   NFNNTr9   N)rO   Úxhtml2pdf.contextr   Úxhtml2pdf.defaultr   Úxhtml2pdf.parserr   Úreportlab.platypus.flowablesr   Úreportlab.platypus.framesr   Úxhtml2pdf.xhtml2pdf_reportlabr   r   Úxhtml2pdf.utilr	   r
   r   r   ÚloggingÚ	getLoggerr   r#   r8   r   r!   r!   r!   r"   Ú<module>   s&   

ÿþ