o
    vh                     @   s  d dl Z 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 d dlmZ d d	lmZ d d
lmZmZ d dlmZ d dlmZ d dlmZmZ eeZdd Z 			 					dddZ!dd Z"					 									dddZ#dS )    N)escape)
pdfencrypt)Spacer)Frame)PDFSignature)
WaterMarks)pisaContext)DEFAULT_CSS)
cleanFilespisaTempFile)
pisaParser)getBox)
PmlBaseDocPmlPageTemplatec                 C   s   t |jd}|d|j  |jD ]\}}}}|dkr'|d||t|f  q|d|j  |jD ]\}}}}|dkrI|d||t|f  q3t| | dd	S )
N)capacityzJ<p style='background-color:red;'><strong>%d error(s) occurred:</strong><p>errorz<pre>%s in line %d: %s</pre>z.<p><strong>%d warning(s) occurred:</strong><p>warningz<p>%s in line %d: %s</p>F)raise_exception)	r   r   writeerrloghtml_escapewarnpisaDocumentgetvalue)destcoutmodelinemsg_ r"   P/var/www/html/hyperkenya/venv/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_kwargsfraganchorr"   r"   r#   	pisaStory5   s   
r:   c                 C   s$   | d u rd S t | trt| S | S )N)
isinstancestrr   StandardEncryption)datar"   r"   r#   get_encrypt_instance[   s
   

r?   T  c                 K   s  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t|dd	}d|jv rk|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 }t|||\}}|s|}|rt }t|||}|r|}|d u rt }||_| }|j| t  |r|S |S )NznpisaDocument options:
  src = %r
  dest = %r
  path = %r
  link_callback = %r
  xhtml = %r
  context_meta = %r)r&   r   )r5   r6   authorsubjectc                 S   s   g | ]}|r|  qS r"   )strip).0xr"   r"   r#   
<listcomp>   s    z pisaDocument.<locals>.<listcomp>keywords,titler   r'   )pagesizerA   rB   rG   rI   showBoundaryencryptallowSplittingbodyz1cm 1cm -1cm -1cm)idleftPaddingrightPaddingbottomPadding
topPadding)rO   framesrJ   ) r   r&   r   metaupdater(   r:   ioBytesIOr   pageSizerC   splitr?   templateListr   r   r   addPageTemplateslistvalues
multiBuildr)   buildr   process_docr   signr   r   r   r
   )r/   r   
dest_bytesr0   r1   r&   r2   r3   r4   r6   r   r   context_metarL   	signaturer7   r5   r   docrN   rE   ywhoutputhas_bg
signoutputdo_okr>   r"   r"   r#   r   e   s   


r   )r%   Nr   NFNNN)NFr%   Nr   NFNNTr@   NNN)$rW   logginghtmlr   r   reportlab.libr   reportlab.platypus.flowablesr   reportlab.platypus.framesr   xhtml2pdf.builders.signsr   xhtml2pdf.builders.watermarksr   xhtml2pdf.contextr   xhtml2pdf.defaultr	   xhtml2pdf.filesr
   r   xhtml2pdf.parserr   xhtml2pdf.utilr   xhtml2pdf.xhtml2pdf_reportlabr   r   	getLogger__name__r   r$   r:   r?   r   r"   r"   r"   r#   <module>   sR   

&