o
    &zhE                     @  s  U d dl mZ d dlZd dlZd dlZd dl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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m Z m!Z! d dl"m#Z# d dl$m%Z%m&Z&m'Z' d dl(m)Z)m*Z*m+Z+m,Z, d dl-m.Z. d dl/m0Z0m1Z1 d dl2m3Z3 d dl4m5Z5 d dl6m7Z7m8Z8 d dl9m:Z: d dl;m<Z<m=Z= erd dl>m?Z? d dl@mAZA zd dlBmCZC d dlDmEZE W n eFy   dZEdZCY nw eGeHZIdZJdeKd< dZLdeKd < G d!d" d"eMZNG d#d$ d$ZOG d%d& d&e%ZPG d'd( d(e'ZQd)ZRd*eKd+< G d,d- d-ZSG d.d/ d/e*eOZTG d0d1 d1e,eOZUG d2d3 d3e:eOZVG d4d5 d5e+eOZWG d6d7 d7e0eOZXG d8d9 d9e&ZYG d:d; d;e.ZZG d<d= d=e)Z[G d>d? d?e)Z\G d@dA dAe*Z]dS )B    )annotationsN)md5)escape)BytesIOStringIO)TYPE_CHECKINGClassVarIterator)uuid4)Image)UnidentifiedImageError)TA_RIGHT)ParagraphStyle)LazyImageReaderflatten
haveImagesopen_for_read)pdfform)BaseDocTemplateIndexingFlowablePageTemplate)CondPageBreakFlowableKeepInFrameParagraphAndImage)TableOfContents)Table
TableStyle)register_reset)
WaterMarks)pisaFileObjectpisaTempFile)	Paragraph)ImageWarninggetBorderStyle)Drawing)Canvas)renderPM)svg2rlggffffff?floatMAX_IMAGE_RATIOz3xhtml2pdf <https://github.com/xhtml2pdf/xhtml2pdf/>strPRODUCERc                      s(   e Zd Zd fddZd	ddZ  ZS )
PTCyclereturnNonec                   s   d| _ d| _t   d S Nr   )_restart_idxsuper__init__self	__class__ X/var/www/html/kangema/venv/lib/python3.10/site-packages/xhtml2pdf/xhtml2pdf_reportlab.pyr4   J   s   zPTCycle.__init__r	   c                 c  s6    	 | | j  V  |  j d7  _ | j t| kr| j| _ q)N   )r2   lenr1   r5   r9   r9   r:   cyclicIteratorO   s   zPTCycle.cyclicIteratorr.   r/   )r.   r	   )__name__
__module____qualname__r4   r=   __classcell__r9   r9   r7   r:   r-   I   s    r-   c                   @  s    e Zd Zd	ddZd
ddZdS )PmlMaxHeightMixInavailHeightintr.   c                 C  sJ   || _ |dk r"t| dr"t| jdsd| j_t|| jj | _ | j_| j S )Nip canvmaxAvailHeightValuer   )availHeightValuehasattrrF   rG   max)r6   rD   r9   r9   r:   setMaxHeightX   s   zPmlMaxHeightMixIn.setMaxHeightc                 C  s   t | dr| jS dS )NrH   r   )rI   rH   r5   r9   r9   r:   getMaxHeightb   s   zPmlMaxHeightMixIn.getMaxHeightN)rD   rE   r.   rE   )r.   rE   )r?   r@   rA   rK   rL   r9   r9   r9   r:   rC   W   s    

rC   c                   @  s8   e Zd ZdZdddZddd	ZdddZdddZdS )
PmlBaseDocz[We use our own document template to get access to the canvas and set some information once.r.   r/   c                 C  s   t | jjj_d S N)r,   rF   _docinfoproducerr5   r9   r9   r:   
beforePagei   s   zPmlBaseDoc.beforePageflowabler   c                 C  s:   t |ddr| d|jtt|jdd| jf d S d S )NoutlineFTOCEntryT)quote)getattrnotifyoutlineLevelhtml_escapecopydeepcopytextpage)r6   rS   r9   r9   r:   afterFlowable~   s   zPmlBaseDoc.afterFlowableptstr | int | list | tuplec                 C  s\  |  | d}|  | d}|r|r| d| dg}	 t|trJt| dr+| `| jD ]}|j|kr?| j|| _ dS q.d| d}t	|t|t
r[t| drV| `|| _dS t|ttfrt }|D ]$}|dkrst||_qg| jD ]}t  |j| kr||  nqvqg|sd}t	||jt|krd	}t	|| | _dS d
}t|)zBIf pt has also templates for even and odd page convert it to list._left_right_nextPageTemplateCycleNzcan't find template('z')*z No valid page templates in cyclezInvalid cycle restart positionz/Argument pt should be string or integer or list)_has_template_for_name
isinstancer+   rI   rd   pageTemplatesidindex_nextPageTemplateIndex
ValueErrorrE   listtupler-   r<   r1   sysexitstripappendr=   	TypeError)r6   r`   has_left_templatehas_right_templatetmsgcptnr9   r9   r:   handle_nextPageTemplate   sR   









z"PmlBaseDoc.handle_nextPageTemplatenamer+   boolc                   s   t  fdd| jD S )Nc                 3  s    | ]
}|j   kV  qd S rN   )ri   rq   ).0templater{   r9   r:   	<genexpr>   s    z4PmlBaseDoc._has_template_for_name.<locals>.<genexpr>)anyrh   )r6   r{   r9   r   r:   rf      s   z!PmlBaseDoc._has_template_for_nameNr>   )rS   r   r.   r/   )r`   ra   r.   r/   )r{   r+   r.   r|   )r?   r@   rA   __doc__rR   r_   rz   rf   r9   r9   r9   r:   rM   f   s    


1rM   c                      sl   e Zd ZU dZded< dZded< eZded< d fd	d
ZdddZdddZ	dddZ
dddZ  ZS )PmlPageTemplateportraitr+   PORTRAIT	landscape	LANDSCAPEpageorientationr.   r/   c                   sR   g | _ g | _d | _t jdi | d| _d| _d | _d| _d| _	d| _
g | _d S )Nr   Tr9   )pisaStaticListpisaBackgroundListpisaBackgroundr3   r4   _page_count_first_flowimgphhwbackgroundids)r6   kwr7   r9   r:   r4      s   
zPmlPageTemplate.__init__canvasr&   r|   c                 C  s<   | j r| | jkrd| _ | j S | | _| |j_| j S NF)r   getPageNumberr   _doctemplate)r6   r   r9   r9   r:   isFirstFlow   s   
zPmlPageTemplate.isFirstFlowc                 C     | j | jkS rN   )r   r   r5   r9   r9   r:   
isPortrait      zPmlPageTemplate.isPortraitc                 C  r   rN   )r   r   r5   r9   r9   r:   isLandscape   r   zPmlPageTemplate.isLandscapec                   sJ      z|jj| jvrKd }t| dr=| jr=| j s=| j dr2t	j
| j| j|  | jd}n| j}| j|jj |rK| j  || jf  fddz.  | jkrh  | _   j_| jD ]}t|}|j}| ||  qkW n ty   tjddd Y nw W    d S W    d S    w )	Nr   zimage/)is_portraitcontextc                   sr   t | D ]2}t|tr%|jD ]}|jrt|_q|jr#t jj	|_qqt|t
r6dd |jD }| qd S )Nc                 S  s   g | ]	}|D ]}|qqS r9   r9   )r}   sublistitemr9   r9   r:   
<listcomp>  s
    zIPmlPageTemplate.beforeDrawPage.<locals>.pageNumbering.<locals>.<listcomp>)r   rg   PmlParagraphfrags
pageNumberr+   r]   	pageCountr   r   PmlTable_cellvalues)objListobjfrag
flat_cellsr   pageNumbering
pagenumberr9   r:   r      s    


z5PmlPageTemplate.beforeDrawPage.<locals>.pageNumberingr   Texc_info)	saveStatepageTemplateri   r   rI   r   notFoundgetMimeType
startswithr   generate_pdf_backgroundpagesizer   backgroundContextrr   r   r   r   r   r   r[   r\   pisaStaticStoryaddFromList	ExceptionlogdebugrestoreState)r6   r   docr   frame
frame_copystoryr9   r   r:   beforeDrawPage   sT   




zPmlPageTemplate.beforeDrawPager>   )r   r&   r.   r|   )r.   r|   )r   r&   )r?   r@   rA   r   __annotations__r   r   r4   r   r   r   r   rB   r9   r9   r7   r:   r      s   
 

	
r   r;   rE   _ctrc                   @  s   e Zd ZU dZi Zded< dZded< dZded< dZded< d%ddZ	e
d&ddZd'ddZd'ddZd(ddZd)ddZdd Zdd  Zd*d"d#Zd$S )+PmlImageReaderz5Wraps up either PIL or Java to get data from bitmaps.zClassVar[dict]_cacheFr|   	use_cacheuse_lazy_loaderprocess_internal_filesfileNamePmlImage | Image | strr.   r/   c              
   C  s  t |tr|j| _d S |pdt|  | _d | _d | _d | _d | _d | _	d | _
d | _tr=t |tr=|| _t|dd | _d S zt|d| _| jrt | jtr| j }tt | j  W d    n1 sgw   Y  | jr| jsxt| jj t|d }| j||}t|| _n| jrt |tr| j  | `t | _!t"r| js| #| j| _t| jdd dkr| j$| _%W d S W d S ddl&m'} z|| j\| _| _}W n ty } zd	}t(||d }~ww | j$| _%| j | _	| j)d W d S  t*y } zd
}t(||d }~ww )N	PILIMAGE_fpbutf8formatJPEGr   )readJPEGInfozBImaging Library not available, unable to import bitmaps only jpegszCannot identify image file)+rg   PmlImage__dict__ri   r   _image_width_height_transparent_data_dataAr   r   rW   r   r   r   read
contextlibsuppressr   closer   r   r   clearr   encodedigest
setdefaultr   r+   r   r8   r   _read_image_jpeg_fhjpeg_fhreportlab.pdfbase.pdfutilsr   r#   seekr   )r6   r   data	cache_keyr   rx   erw   r9   r9   r:   r4   -  sl   




zPmlImageReader.__init__r   c                 C  sJ   t jd d dkr ddlm} ddlm} ||  }||S t| S )N   javar   )ByteArrayInputStream)ImageIO)	ro   platformjava.ior   javax.imageior   r   PILImageopen)r   r   r   input_streamr9   r9   r:   r   i  s   

zPmlImageReader._read_imageBytesIO | StringIO | Nonec                 C  s"   | j }t|ttfr|d |S r0   )r   rg   r   r   r   )r6   r   r9   r9   r:   r   s  s   
zPmlImageReader._jpeg_fhc                 C  s   dS )z-Might be replaced with _jpeg_fh in some casesNr9   r5   r9   r9   r:   r   y  s   zPmlImageReader.jpeg_fhtuple[int, int]c                 C  sx   | j d u s
| jd u r6tjd d dkr | j | _ | j | _n| jj\| _ | _tr6| j d ur4| jd us6J | j | jfS )Nr   r   )	r   r   ro   r   r   getWidth	getHeightsizer   r5   r9   r9   r:   getSize}  s   zPmlImageReader.getSizebytes | strc              	   C  sV  | j du rd| _tjdd dkrkddl}ddlm} |  \}}||| d}|| j	dd|||d|}|
  g }|j}|D ]}	|t|	d? d@  |t|	d	? d@  |t|	d@  q@d
|| _ d| _| j S | j	}
|
j }| _|dkr|
  t|
 d | _|
d}
d| _n|dvr|
d}
d| _t|
dr|
 n|
 | _ | j S )z(Return byte array of RGB data as string.Nr   r   r   )PixelGrabberi          RGBRGBA   >   Lr  CMYKtobytes)r   r   ro   r   jarrayjava.awt.imager   r   zerosr   
grabPixelsrr   chrjoinmodeloadr   splitconvertrI   r  tostring)r6   r	  r   widthheightbufferpgpixelsargbimr  r9   r9   r:   
getRGBData  s@   


zPmlImageReader.getRGBDatac                 C  s   |   \}}|||  fS rN   )r   r  )r6   r  r  r9   r9   r:   getImageData  s   zPmlImageReader.getImageDatac              
   C  s   t jd d dkrd S d| jjv rY| jjd d }| jj}t|dr&|j}nt|dr/|j}nd S zt|||d  W S  tyX } zt	j
t||d W Y d }~d S d }~ww d S )Nr   r   transparencyr  paletter   r   )ro   r   r   rP   r  rI   r   rm   r   r   r   r+   )r6   r  r  r   r9   r9   r:   getTransparent  s$   

zPmlImageReader.getTransparentr+   c                 C  sD   t | jtttfr| j pt| }dt| S t| jp t| S )NPmlImageObject_)	rg   r   r   r   r   r   ri   hashr+   )r6   fnr9   r9   r:   __str__  s   zPmlImageReader.__str__N)r   r   r.   r/   )r.   r   )r.   r   )r.   r   )r.   r   )r.   r+   )r?   r@   rA   r   r   r   r   r   r   r4   staticmethodr   r   r   r   r  r  r   r$  r9   r9   r9   r:   r   $  s    
 
<
	


&r   c                   @  s`   e Zd Z					d#d$ddZdd Z	d%d&ddZd'ddZd(ddZd)dd Zd*d!d"Z	dS )+r   Nautor   %pisaFileObject | pisaTempFile | bytessrc
str | Noner  
int | Noner  maskr+   mimetyper   dictr.   r/   c                 K  s   || _ d| _|| _d| _t|tr|| _nt|tr | | _nt|tr,|	 p*d| _|| _
|| _|  }d| _d| _|rK| pCd\}	}	| _| _n|  }
|
rY|
 \| _| _|p]| j| _|pc| j| _d S )NCENTER    g        )r   r   r   r   )r   hAlign_mask_imgdatarg   bytesr!   getvaluer    getDatar(  r,  
getDrawing
imageWidthimageHeight	getBoundsgetImager   	drawWidth
drawHeight)r6   r   r(  r  r  r+  r,  r   drawing_r   r9   r9   r:   r4     s,   



zPmlImage.__init__c                 C  sp   |  |}t| j|}t|| j }t| j|t }t|| j }t||}| j| | _| j| | _| j| jfS )z
        Resize the image if necessary.

        This can be called more than once! Do not overwrite important data like drawWidth.
        )rK   minr;  r)   r<  r*   dWidthdHeight)r6   
availWidthrD   r  wfactorr  hfactorfactorr9   r9   r:   wrap  s   

zPmlImage.wrapfloat | NoneDrawing | Nonec              	   C  s   t rqz	t t| j}W n
 ty   Y dS w |rqd}d}z<t| dddur1|du r,| j}||j }t| dddurE|du r@| j}||j }|dksM|dkrV|	|| W |S W |S  t
yp   td| jpk| jdd  Y |S w dS )zZIf this image is a vector image and the library is available, returns a ReportLab Drawing.Nr;   r;  r<  z$SVG drawing could not be resized: %r2   )r(   r   r2  r   rW   r;  r  r<  r  scaleZeroDivisionErrorr   warningr(  )r6   r  r  r=  scale_xscale_yr9   r9   r:   r6    s>   

zPmlImage.getDrawingBytesIO | Nonec                 C  s2   t rtr|  }|rt }tj||dd |S dS )zVIf this image is a vector image and the libraries are available, returns a PNG raster.PNG)fmtN)r(   r'   r6  r   
drawToFile)r6   svgimgdatar9   r9   r:   getDrawingRaster.  s   zPmlImage.getDrawingRasterr   c                 C  s   |   }|p
t| j}t|S )zReturn a raster image.)rU  r   r2  r   )r6   vectorRasterrT  r9   r9   r:   r:  8  s   zPmlImage.getImagec                 C  s*   |   }| jj|dd| j| j| jd d S )Nr   )r+  )r:  rF   	drawImager@  rA  r1  )r6   r   r9   r9   r:   draw>  s   "zPmlImage.drawc                 C  s   t | |S rN   )r   identity)r6   maxLenr9   r9   r:   rY  G  r   zPmlImage.identity)NNNr&  N)r   r'  r(  r)  r  r*  r  r*  r+  r+   r,  r)  r   r-  r.   r/   )NN)r  rG  r  rG  r.   rH  )r.   rO  )r.   r   r>   rN   )
r?   r@   rA   r4   rF  r6  rU  r:  rX  rY  r9   r9   r9   r:   r     s    +
 


	r   c                   @  s   e Zd Zdd Zdd ZdS )PmlParagraphAndImagec                 C  s"   | j | j_ t| ||}| j` |S rN   )rF   Ir   rF  )r6   rB  rD   resultr9   r9   r:   rF  L  s   
zPmlParagraphAndImage.wrapc                 C  s.   t | ds| j||\| _| _t| ||S )NwI)rI   r\  rF  r^  hIr   r  r6   rB  rD   r9   r9   r:   r  R  s
   
zPmlParagraphAndImage.splitN)r?   r@   rA   rF  r  r9   r9   r9   r:   r[  K  s    r[  c                   @  s,   e Zd Zdd Zdd Zdd Zdd Zd	S )
r   c           
      C  s   d| _ | jD ]L}t|drR|jjdkrR|j}|jdkrR|jdkrRd| _ t|j|}t||j }t|j|t	 }t||j }t||}	| j|	9  _| j|	9  _qd S )NFcbDefnr   r   T)
	hasImagesr   rI   ra  kindr  r  r?  r)   r*   )
r6   rB  rD   r   r   r  rC  r  rD  rE  r9   r9   r:   _calcImageMaxSizes\  s"   


zPmlParagraph._calcImageMaxSizesc                 C  s   |  |}| j}|j|j |j |j | _|j|j |j	 |j
 | _|| j8 }|| j8 }| || t| || |  j| j7  _|  j| j7  _| j| jfS rN   )rK   stylepaddingLeftpaddingRightborderLeftWidthborderRightWidth
deltaWidth
paddingToppaddingBottomborderTopWidthborderBottomWidthdeltaHeightrd  r"   rF  r  r  )r6   rB  rD   re  r9   r9   r:   rF  m  s2   

	
zPmlParagraph.wrapc                 C  sJ   t | jdkr	g S t| ds| || || j8 }|| j8 }t| ||S )Nr   rj  )r<   r   rI   rF  rj  ro  r"   r  r`  r9   r9   r:   r    s   


zPmlParagraph.splitc              	     s  t | ddrSt | jddd }|| jk r3t j}| j| | j| j||| j  |d7 }|| jk s| j| j_	t j}| j| | j| j|| j| j  |d7 }| j | j
j}j}d}|| }| }| j|j  d|  }| jd|  }	|r    |  j||||	ddd    d _    jj djj   t|     |_    fd	d
}
|
jjj|||||	  |
jjj|| ||| ||	  |
j jj!|||	 || ||	  |
j"j#j$|||| |    d S )NrT   FoutlineLastr;   r      )fillstrokec                   sV   |r%t | r'|d u rj}|d ur) |  |  |||| d S d S d S d S rN   )r$   	textColorsetStrokeColorsetLineWidthline)bstyler  colorx1y1x2y2r   re  r9   r:   _drawBorderLine  s   

z*PmlParagraph.draw.<locals>._drawBorderLine)%rW   rF   rY   r
   hexbookmarkPageaddOutlineEntryr]   outlineOpenrp  re  	backColor
leftIndentr  rightIndentr  r   setFillColorrectr   	translaterf  rh  rk  rm  r"   rX  borderLeftStyleborderLeftColorborderRightStyleri  borderRightColorborderTopStyleborderTopColorborderBottomStylern  borderBottomColor)r6   lastkeybgr  bpxyr   r   r  r9   r  r:   rX    s   





			
zPmlParagraph.drawN)r?   r@   rA   rd  rF  r  rX  r9   r9   r9   r:   r   [  s
    &r   c                   @     e Zd Zdd ZdS )PmlKeepInFramec                 C  s4   t |d}t |d}|| _| || _t| ||S )Ng      ?)rJ   maxWidthrK   	maxHeightr   rF  r`  r9   r9   r:   rF    s
   

zPmlKeepInFrame.wrapNr?   r@   rA   rF  r9   r9   r9   r:   r        r  c                   @  s*   e Zd Zedd Zd	ddZdd ZdS )
r   c                 C  sB   t | tr|d t| dd  } n
| du s| dkr|} t| |S )z'Normalize width when using percentages.g      Y@Nrq  re   )rg   r+   r)   r?  )r   maxwr9   r9   r:   
_normWidth  s
   

zPmlTable._normWidthN@ c              	   C  s,   |dkr
|   p	|}tj| ||||||dS )Nr  )WHaH)rL   r   _listCellGeom)r6   Vr   sr  r  r  r9   r9   r:   r  &  s   zPmlTable._listCellGeomc                 C  s"  |  | t| ds|| _| | j|}|}d}| j}t|D ]\}}|d ur2| ||}	||	8 }n|d7 }d }	|	||< q|d }
|dkr[t|D ]\}}|d u rZt|
|| ||< qIt||krx|t| }tt	|D ]
}||  |9  < qmt|| }|dkr|d  |8  < t
| ||S )N
totalWidthr   r;   g{Gz?)rK   rI   r  r  
_colWidths	enumeraterJ   sumranger<   r   rF  )r6   rB  rD   r  remainingWidthremainingColsnewColWidthsr   colWidthnewColWidthminCellWidthquotientdiffr9   r9   r:   rF  ,  s<   



zPmlTable.wrap)NNr  )r?   r@   rA   r%  r  r  rF  r9   r9   r9   r:   r     s
    

r   c                      s0   e Zd Zd
 fddZdd Zddd	Z  ZS )PmlPageCountr.   r/   c                   s   t    d| _d S r   )r3   r4   second_roundr5   r7   r9   r:   r4   ^  s   

zPmlPageCount.__init__c                 C  s   | j }d| _ |S )NT)r  )r6   r  r9   r9   r:   isSatisfiedb  s   zPmlPageCount.isSatisfiedr   c                 C     d S rN   r9   )r6   r   r  r  _sWr9   r9   r:   drawOng     zPmlPageCount.drawOnr>   )r   )r?   r@   rA   r4   r  r  rB   r9   r9   r7   r:   r  ]  s    r  c                   @  r  )PmlTableOfContentsc              	   C  s
  || j  | j f}t| jdkrdg}n| j}d}g }g d}t|D ]E\}}	|	dd \}
}}| j|
 }|rG|dd|fd|ft||jf |j}t	d|
 |dt
d	}t||}tt||}|||g q"t||t|d
| _| j| j||\| _| _| j| jfS )z,All table properties should be known by now.r   )r   z!Placeholder for table of contentsr   ))VALIGNr   r   rq  rq  TOP)LEFTPADDINGr  r  r   )RIGHTPADDINGr  r  r   )
TOPPADDINGr  r  r   )BOTTOMPADDINGr  r  r   Nr  r  rq  zleftColLevel%d)r{   parentr  	alignment)	colWidthsre  )rightColumnWidthr<   _lastEntriesr  levelStylesrr   rJ   spaceBefore
spaceAfterr   r   r"   r+   r   r   _tablewrapOnrF   r  r  )r6   rB  rD   widths_tempEntries
lastMargin	tableData
tableStyler   entrylevelr]   pageNumleftColStylerightColStyleleftPara	rightParar9   r9   r:   rF  l  s>   

	
zPmlTableOfContents.wrapNr  r9   r9   r9   r:   r  k  r  r  c                   @     e Zd ZdddZdd ZdS )	PmlRightPageBreakr.   r/   c                 C  r  rN   r9   r5   r9   r9   r:   r4     r  zPmlRightPageBreak.__init__c                 C  s2   | j  d s|| _|| _||fS d | _| _dS Nrr  r   r  rF   r   r  r  r`  r9   r9   r:   rF       zPmlRightPageBreak.wrapNr>   r?   r@   rA   r4   rF  r9   r9   r9   r:   r        
r  c                   @  r  )	PmlLeftPageBreakr.   r/   c                 C  r  rN   r9   r5   r9   r9   r:   r4     r  zPmlLeftPageBreak.__init__c                 C  s2   | j  d r|| _|| _||fS d | _| _dS r  r  r`  r9   r9   r:   rF    r  zPmlLeftPageBreak.wrapNr>   r  r9   r9   r9   r:   r    r  r  c                   @  s4   e Zd Z						dddd	Zd
d Zdd ZdS )PmlInputr]   
   r  Nr   r.   r/   c                 C  s:   || _ || _|| _|| _|| _|d ur|ng | _|| _d S rN   )r  r  typer{   defaultoptions	multiline)r6   r{   
input_typer  r  r  r  r  r9   r9   r:   r4     s   

zPmlInput.__init__c                 G  s   | j | jfS rN   )r  r  )r6   argsr9   r9   r:   rF    r   zPmlInput.wrapc              
   C  s  | j }|  |dd | jdkr-tj|| jdd| j| j| j	d |
dd| j| j nX| jdkr=|
dd| j| j nH| jdkre| jrPt|| jddd n
t|| jd	dd |
dd| j| j n | jd
krt|| j| j| jdd| j| j |
dd| j| j |  d S )N	Helveticar  r]   r   )r  radiocheckboxYesOffselect)rF   r   setFontr  r   textFieldRelativer{   r  r  r  r  r  buttonFieldRelativeselectFieldRelativer  r   )r6   rx   r9   r9   r:   rX    s*   



zPmlInput.draw)r]   r  r  r  Nr   r>   )r?   r@   rA   r4   rF  rX  r9   r9   r9   r:   r    s    r  )^
__future__r   r   r[   loggingro   hashlibr   htmlr   rZ   ior   r   typingr   r   r	   uuidr
   PILr   r   r   	PIL.Imagereportlab.lib.enumsr   reportlab.lib.stylesr   reportlab.lib.utilsr   r   r   r   reportlab.pdfbaser   reportlab.platypus.doctemplater   r   r   reportlab.platypus.flowablesr   r   r   r   "reportlab.platypus.tableofcontentsr   reportlab.platypus.tablesr   r   reportlab.rl_configr   xhtml2pdf.builders.watermarksr   xhtml2pdf.filesr    r!   xhtml2pdf.reportlab_paragraphr"   xhtml2pdf.utilr#   r$   reportlab.graphics.shapesr%   reportlab.pdfgen.canvasr&   reportlab.graphicsr'   svglib.svglibr(   ImportError	getLoggerr?   r   r*   r   r,   rm   r-   rC   rM   r   r   r   r   r[  r   r  r   r  r  r  r  r  r9   r9   r9   r:   <module>   sr   
Yb -{ 9	A6