
    e@d                         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mZ d dlmZmZ d dlmZ  ej        d          Zd Z 	 	 ddZ!d Z"	 	 	 	 ddZ#dS )    N)
pdfencrypt)Spacer)Frame)PDFSignature)
WaterMarks)pisaContext)DEFAULT_CSS)
pisaParser)pypdfgetBox)pisaTempFile
cleanFiles)
PmlBaseDocPmlPageTemplate)escape	xhtml2pdfc           	         t          |j                  }|                    d|j        z             |j        D ]5\  }}}}|dk    r(|                    d||t          |          fz             6|                    d|j        z             |j        D ]5\  }}}}|dk    r(|                    d||t          |          fz             6t          |                                | 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html_escapewarnpisaDocumentgetvalue)destcoutmodelinemsg_s          /./xhtml2pdf/document.pypisaErrorDocumentr'   &   s   


+
+
+CIIY\]\aabbbe 6 6dC7??II4T;s#3#345 6 6 6 II=FGGGe 6 6dC9II0T;s#3#345 6 6 6 eDDDD    Fc	                 4   |st          ||          }||_        |t          }t          | |||||           |j        st          dd          g|_        |j        r|j                            |j                   |j        D ]\  }
}||j	        vrd |
_
        |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anchors               r&   	pisaStoryr>   7   s      -d%000, ! sG[%:FFF = '1 5W3444  *  f+++DINr(   c                 `    | d S t          | t                    rt          j        |           S | S )N)
isinstancestrr   StandardEncryption)datas    r&   get_encrypt_instancerD   T   s4    |$ 3,T222Kr(   T  c                    t                               d| |||||           t          |||          }||j                            |           ||_        t          | ||||||||		  	        }t          j                    }t          ||j
        |j        d                                         |j        d                                         d |j        d                                                             d          D             |j        d	                                         d
t          |          d	  	        }d|j        v r|j        d         }|j        d= nHt          d|j
                  \  }}}}t!          dt#          ||||dd
d
d
d
	  	        g|j
                  }|                    |gt'          |j                                                  z              |j        r|                    |j                   n|                    |j                   t          j                    }t1          j        |||          \  }}|s|}|r-t          j                    }t5          j        |||          }|r|}|t          j                    }||_        |                                }|j                            |           t?                       |r|S |S )NznpisaDocument options:
  src = %r
  dest = %r
  path = %r
  link_callback = %r
  xhtml = %r
  context_meta = %r)r*   r   )r9   r:   authorsubjectc                 :    g | ]}||                                 S  )strip).0xs     r&   
<listcomp>z pisaDocument.<locals>.<listcomp>   s;     D D DABD!'')) D D Dr(   keywords,titler   r+   )pagesizerG   rH   rO   rQ   showBoundaryencryptallowSplittingbodyz1cm 1cm -1cm -1cm)idleftPaddingrightPaddingbottomPadding
topPadding)rW   framesrR   ) r   r*   r   metaupdater,   r>   ioBytesIOr   pageSizerK   splitrD   templateListr   r   r   addPageTemplateslistvalues
multiBuildr-   buildr   process_docr   signr   r   r   r   )r3   r   
dest_bytesr4   r5   r*   r6   r7   r8   r:   r   r   context_metarT   	signaturer;   r9   r!   docrV   rM   ywhoutputhas_bg
signoutputdo_okrC   s                                r&   r   r   ^   s   
 II  E   $eh???GL)))(G T=%e 'jJ J JG *,,C
!|H%++--Y'--//D D,z*002288==D D Dl7#))++$W--
 
 
C %%%#F+ ((/1ABB
1aaAq"##$$%!"$ $ $% %	' 	' 	' $$w';'B'B'D'D"E"EEFFF  !w}%%%%		'-    :<<F)'3??NFF  Z\\
z9== 	F |z||GL??DLtLLL Nr(   )NNr   NFNNN)NFNNr   NFNNTrE   NNN)$r_   loggingreportlab.libr   reportlab.platypus.flowablesr   reportlab.platypus.framesr   xhtml2pdf.builders.signsr   xhtml2pdf.builders.watermarksr   xhtml2pdf.contextr   xhtml2pdf.defaultr	   xhtml2pdf.parserr
   xhtml2pdf.utilr   r   xhtml2pdf.filesr   r   xhtml2pdf.xhtml2pdf_reportlabr   r   htmlr   r   	getLoggerr   r'   r>   rD   r   rJ   r(   r&   <module>r      s  " 
			  $ $ $ $ $ $ / / / / / / + + + + + + 1 1 1 1 1 1 4 4 4 4 4 4 ) ) ) ) ) ) ) ) ) ) ) ) ' ' ' ' ' ' ( ( ( ( ( ( ( ( 4 4 4 4 4 4 4 4 E E E E E E E E & & & & & &g$$E E E" HLCG   :   YZJNIM)-_ _ _ _ _ _r(   