§
    £”jµ;  ã                   ó€  — d Z dZddlmZ ddlT 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 e
j        fd	„Z G d
„ de¦  «        ZddlmZ  G d„ de¦  «        Zde
j        dfd„Zde
j        dfd„Zdd„Zedk    rC ed¬¦  «         ddlZ eej        ¦  «        dk    rej        d         ZndZ eed¬¦  «         dS dS )z3.3.0z¼Render Drawing objects within others PDFs or standalone

Usage::
    
    import renderpdf
    renderpdf.draw(drawing, canvas, x, y)

Execute the script to see some test drawings.
changed
é    )ÚBytesIO)Ú*)ÚCanvas)ÚstringWidth)Ú	rl_config)ÚRendererÚgetStateDeltaÚrenderScaledDrawingÚSTATE_DEFAULTSc                 óp   — t          ¦   «         }|                     t          | ¦  «        ||||¬¦  «         dS )z
As it says©ÚshowBoundaryN)Ú_PDFRendererÚdrawr
   )ÚdrawingÚcanvasÚxÚyr   ÚRs         úk/var/www/finuniver-perm.ru/html/portfolio/venv/lib/python3.11/site-packages/reportlab/graphics/renderPDF.pyr   r      s6   € å‰Œ€AØ‡F‚FÕ˜wÑ'Ô'¨°°AÀL€FÑQÔQÐQÐQÐQó    c                   ól   — e Zd ZdZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZdS )r   z±This draws onto a PDF document.  It needs to be a class
    rather than a function, as some PDF-specific state tracking is
    needed outside of the state info in the SVG model.c                 ó"   — d| _         d| _        d S ©Nr   )Ú_strokeÚ_fill©Úselfs    r   Ú__init__z_PDFRenderer.__init__%   s   € ØˆŒØˆŒ
ˆ
ˆ
r   c                 ó¸  — t          |t          ¦  «        r|j        s| j                             ¦   «          t          |¦  «        }| j                             |¦  «         |                      |i ¦  «         |  	                    |¦  «         | j         
                    ¦   «          t          |t          ¦  «        r|j        s| j                             ¦   «          dS dS )zEThis is the recursive method called for each node
        in the treeN)Ú
isinstanceÚPathÚ
isClipPathÚ_canvasÚ	saveStater	   Ú_trackerÚpushÚapplyStateChangesÚdrawNodeDispatcherÚpopÚrestoreState)r   ÚnodeÚdeltass      r   ÚdrawNodez_PDFRenderer.drawNode)   s×   € õ
 ˜4¥Ñ&Ô&ð 	%¨4¬?ð 	%ØŒL×"Ò"Ñ$Ô$Ð$õ ˜tÑ$Ô$ˆØŒ×Ò˜6Ñ"Ô"Ð"Ø×Ò˜v rÑ*Ô*Ð*ð 	×Ò Ñ%Ô%Ð%àŒ×ÒÑÔÐÝ˜4¥Ñ&Ô&ð 	(¨4¬?ð 	(ØŒL×%Ò%Ñ'Ô'Ð'Ð'Ð'ð	(ð 	(r   c           	      óB  — |j         |j        cxk    rdk    rCn n@| j                             |j        |j        |j        |j        | j        | j	        ¬¦  «         d S | j         
                    |j        |j        |j        |j        |j         | j	        | j        ¬¦  «         d S )Nr   ©ÚstrokeÚfill©r2   r1   )ÚrxÚryr$   Úrectr   r   ÚwidthÚheightr   r   Ú	roundRect)r   r6   s     r   ÚdrawRectz_PDFRenderer.drawRect=   s¸   € ØŒ7�d”gÐ"Ð"Ò"Ð" Ò"Ð"Ð"Ð"Ð"àŒL×ÒØ”F˜DœFØ”J ¤Øœ<Øœð	 ñ ô ð ð ð ð ŒL×"Ò"Ø”F˜DœFØ”J ¤¨T¬WØœØœ<ð	 #ñ ô ð ð ð r   c                 óì   — |j         }|rht          |d¦  «        s$t          j                              |j         ¦  «        r6| j                             ||j        |j        |j        |j	        ¦  «         d S d S d S )NÚmode)
ÚpathÚhasattrÚosÚexistsr$   ÚdrawInlineImager   r   r7   r8   )r   Úimager=   s      r   Ú	drawImagez_PDFRenderer.drawImageP   s†   € ØŒzˆàð 	•W˜T &Ñ)Ô)ð 	­R¬W¯^ª^¸E¼JÑ-GÔ-Gð 	ØŒL×(Ò(ØØ”G˜UœWØ”K ¤ñô ð ð ð ð	ð 	ð 	ð 	r   c                 óz   — | j         r3| j                             |j        |j        |j        |j        ¦  «         d S d S ©N)r   r$   ÚlineÚx1Úy1Úx2Úy2)r   rF   s     r   ÚdrawLinez_PDFRenderer.drawLineZ   sC   € ØŒ<ð 	BØŒL×Ò˜dœg t¤w°´¸¼ÑAÔAÐAÐAÐAð	Bð 	Br   c                 óv   — | j                              |j        |j        |j        | j        | j        ¬¦  «         d S ©Nr3   )r$   ÚcircleÚcxÚcyÚrr   r   )r   rN   s     r   Ú
drawCirclez_PDFRenderer.drawCircle^   sB   € ØŒL×ÒØ”I˜vœy¨&¬(ØœØœ<ð  ñ ô ð ð ð r   c                 óÎ  — | j         rÝt          |j        ¦  «        dk    s
J d¦   «         ‚|j        dd…         |j        dd …         }}| j                             ¦   «         }|                     |d         |d         ¦  «         t          dt          |¦  «        d¦  «        D ]'}|                     ||         ||dz            ¦  «         Œ(| j                             |¦  «         d S d S )Né   ú#Polyline must have 2 or more pointsr   é   )	r   ÚlenÚpointsr$   Ú	beginPathÚmoveToÚrangeÚlineToÚdrawPath)r   ÚpolylineÚheadÚtailr=   Úis         r   ÚdrawPolyLinez_PDFRenderer.drawPolyLinee   sè   € ØŒ<ð 	(Ý�x”Ñ'Ô'¨1Ò,Ð,Ð,Ð.SÑ,Ô,Ð,Ø!œ¨¨1¨Ô-¨x¬¸q¸r¸rÔ/B�$ˆDØ”<×)Ò)Ñ+Ô+ˆDØ�KŠK˜˜Qœ  a¤Ñ)Ô)Ð)Ý˜1�c $™iœi¨Ñ+Ô+ð 0ð 0�Ø—’˜D œG T¨!¨A©#¤YÑ/Ô/Ð/Ð/ØŒL×!Ò! $Ñ'Ô'Ð'Ð'Ð'ð	(ð 	(r   c                 óÐ  — |j         r)|                      |                     ¦   «         ¦  «         d S |j        |j        |j        |j        |j        f\  }}}}}|                     ¦   «         \  }}}	|€|}||z
  }
| j	         
                    ¦   «         }|dk    s|€E|	dk    s|	€=|                     ||¦  «         |                     ||z
  ||z
  ||z   ||z   ||
¦  «         nM|                     ||z
  ||z
  ||z   ||z   ||
¦  «         |                     ||z
  ||	z
  ||z   ||	z   ||
 ¦  «         |                     ¦   «          | j	                             || j        | j        ¬¦  «         d S )Nr   r3   )Úannularr]   Ú	asPolygonÚcenterxÚcenteryÚradiusÚstartangledegreesÚendangledegreesÚ
_xtraRadiir$   rY   rZ   ÚarcToÚarcÚcloser   r   )r   Úwedgerf   rg   rh   ri   rj   ÚyradiusÚradius1Úyradius1Úangler=   s               r   Ú	drawWedgez_PDFRenderer.drawWedgeo   s²  € ØŒ=ð 	Ø�MŠM˜%Ÿ/š/Ñ+Ô+Ñ,Ô,Ð,Ð,Ð,ð Œ]˜EœM¨5¬<¸Ô9PÐRWÔRgÐgñ IˆG�W˜fÐ&7¸à).×)9Ò)9Ñ);Ô);Ñ&ˆG�W˜hØˆ¨& Ø#Ð$5Ñ5ˆEØ”<×)Ò)Ñ+Ô+ˆDØ˜’
�
˜g˜o°H¸a²K°KÀ8ÐCSØ—’˜G WÑ-Ô-Ð-Ø—
’
˜7 6™>¨7°7©?¸GÀF¹NÈGÐT[ÉOØ(¨%ñ1ô 1ð 1ð 1ð —’˜ ™¨°©¸'À&¹.È'ÐRYÉ/Ø(¨%ñ1ô 1ð 1à—
’
˜7 7™?¨G°HÑ,<¸gÀg¹oÈwÐW_ÑO_Ø&¨¨ñ0ô 0ð 0à�JŠJ‰LŒLˆLØŒL×!Ò! $Ø!œZØ#œ|ð "ñ ô ð ð ð r   c                 óÒ   — |j         |j        z
  }|j         |j        z   }|j        |j        z
  }|j        |j        z   }| j                             ||||| j        | j        ¬¦  «         d S rM   )rO   r4   rP   r5   r$   Úellipser   r   )r   rv   rG   rI   rH   rJ   s         r   ÚdrawEllipsez_PDFRenderer.drawEllipseˆ   sg   € àŒZ˜'œ*Ñ$ˆØŒZ˜'œ*Ñ$ˆØŒZ˜'œ*Ñ$ˆØŒZ˜'œ*Ñ$ˆØŒ×Ò˜R  2 b¨d¬jÀÄÐÑMÔMÐMÐMÐMr   c                 óþ  — t          |j        ¦  «        dk    s
J d¦   «         ‚|j        dd…         |j        dd …         }}| j                             ¦   «         }|                     |d         |d         ¦  «         t          dt          |¦  «        d¦  «        D ]'}|                     ||         ||dz            ¦  «         Œ(|                     ¦   «          | j                             || j	        | j
        ¬¦  «         d S )NrT   rU   r   rV   r0   )rW   rX   r$   rY   rZ   r[   r\   rn   r]   r   r   )r   Úpolygonr_   r`   r=   ra   s         r   ÚdrawPolygonz_PDFRenderer.drawPolygon�   sû   € Ý�7”>Ñ"Ô" aÒ'Ð'Ð'Ð)NÑ'Ô'Ð'Ø”^ A a CÔ(¨'¬.¸¸¸Ô*<ˆdˆØŒ|×%Ò%Ñ'Ô'ˆØ�Š�D˜”G˜T !œWÑ%Ô%Ð%Ý�q�#˜d™)œ) QÑ'Ô'ð 	,ð 	,ˆAØ�KŠK˜˜Qœ  a¨¡c¤Ñ+Ô+Ð+Ð+Ø�
Š
‰ŒˆØŒ×ÒØ Ø#'¤<Ø!%¤ð 	ñ 	ô 	ð 	ð 	ð 	r   c           	      ó   — t          |dd¦  «        }|dv }|dv }| j        r|s	| j        râ|râ| j                             ¦   «         }|d         |j        |j        |j        |j        f\  }}}}	}
|dvrz|d         |d         }}t          |	|||
¦  «        }|d	k    r||z  }nL|d
k    r	||dz  z  }n=|dk    r|t          ||	||||
¦  «        z  }nt          dt          |¦  «        z   ¦  «        ‚| j                             |||	|pd ¬¦  «         d S d S d S )NÚtextRenderModer   )r   rT   é   é   )rV   rT   é   r~   Ú
textAnchor)ÚstartÚ	inheritedÚfontNameÚfontSizeÚendÚmiddleg      à?Únumericzbad value for textAnchor )r<   )Úgetattrr   r   r&   ÚgetStater   r   ÚtextÚencodingr   ÚnumericXShiftÚ
ValueErrorÚstrr$   Ú
drawString)r   Ú	stringObjr|   ÚneedFillÚ
needStrokeÚSÚtext_anchorr   r   rŠ   ÚencÚfontÚ	font_sizeÚtextLens                 r   r�   z_PDFRenderer.drawStringž   ss  € Ý  Ð+;¸AÑ>Ô>ˆØ! YÐ.ˆØ# yÐ0ˆ
àŒJð 	M˜8ð 	M¨¬ð 	M¸*ð 	MØ”×&Ò&Ñ(Ô(ˆAØ+,¨\¬?¸I¼KÈ	ÌÐT]ÔTbÐdmÔdvÐ+vÑ(ˆK˜˜A˜t SØÐ"7Ð7Ð7Ø"# J¤-°°:´�i�Ý% d¨D°)¸SÑAÔA�Ø Ò%Ð%Ø˜‘L�A�AØ  (Ò*Ð*Ø˜ ™Ñ$�A�AØ  )Ò+Ð+Ø� {°4¸ÀÀYÈsÑSÔSÑS�A�Aå$Ð%@ÅÀ[ÑAQÔAQÑ%QÑRÔRÐRØŒL×#Ò# A q¨$°^Ð5KÀtÐ#ÑLÔLÐLÐLÐLð	Mð 	Mð 	Mð 	Mr   c                 ó  — ddl m} | j                             ¦   «         }|j        |j        |j        |j        f}t          |dd¦  «        }| j	        }| j
        } ||||o|dk    ¬¦  «        }| j        j        }	|j        r| j        j        n|	}
t          |dd ¦  «        }|dk    r6|r#|r!|s |
||d¬	¦  «          |	||d|¬
¦  «         d S  |
||||¬¦  «         d S |dk    r |
||||¬¦  «         d S |sd} |
||||¬¦  «         d S )Nr   )Ú_renderPathÚ	autocloseÚ Úpdf)Ú
forceCloseÚfillModeÚsvgr3   )r1   r2   rŸ   )r2   r1   rŸ   )Úreportlab.graphics.shapesrš   r$   rY   rZ   r\   ÚcurveTorn   rˆ   r   r   r]   r#   ÚclipPath)r   r=   rš   ÚpdfPathÚ	drawFuncsr›   r2   r1   ÚisClosedÚdPÚcPrŸ   s               r   r]   z_PDFRenderer.drawPath³   s~  € Ø9Ð9Ð9Ð9Ð9Ð9Ø”,×(Ò(Ñ*Ô*ˆØ”^ W¤^°W´_ÀgÄmÐTˆ	Ý˜D ¨RÑ0Ô0ˆ	ØŒzˆØ”ˆØ�;˜t Y¸4Ð;TÀIÈuÒDTÐUÑUÔUˆØŒ\Ô"ˆØ&*¤oÐ=ˆTŒ\Ô"Ð"¸2ˆÝ˜4 
¨4Ñ0Ô0ˆØ�eÒÐØð I˜ð I xð IØ��7 ¨aÐ0Ñ0Ô0Ð0Ø��7 6°¸HÐEÑEÔEÐEÐEÐEà��7 ¨f¸xÐHÑHÔHÐHÐHÐHØ˜ÒÐØˆBˆw˜T¨&¸8ÐDÑDÔDÐDÐDÐDð ð Ø�ØˆBˆw˜T¨&¸8ÐDÑDÔDÐDÐDÐDr   c                 ó:   — | j                              |¦  «         d S rE   )r$   ÚsetStrokeColor©r   Úcs     r   rª   z_PDFRenderer.setStrokeColorÌ   s   € ØŒ×#Ò# AÑ&Ô&Ð&Ð&Ð&r   c                 ó:   — | j                              |¦  «         d S rE   )r$   ÚsetFillColorr«   s     r   r®   z_PDFRenderer.setFillColorÏ   s   € ØŒ×!Ò! !Ñ$Ô$Ð$Ð$Ð$r   c           
      ó4  — t           j        r!t          |                     ¦   «         ¦  «        n|                     ¦   «         D �]Ô\  }}|dk    rD| j                             |d         |d         |d         |d         |d         |d         ¦  «         ŒP|dk    r'|€d| _        Œ`d| _        |                      |¦  «         Œ}|d
k    r| j                             |¦  «         Œž|dk    r| j         	                    |¦  «         Œ¿|dk    r| j         
                    |¦  «         Œà|dk    rž|r�t          |t          t          f¦  «        rFt          |¦  «        dk    r3t          |d         t          t          f¦  «        r|d         }|d         }nd}| j                             ||¦  «         �Œi| j                             ¦   «          �Œ„|dk    r)|€	d| _        �Œ•d| _        |                      |¦  «         �Œ³|dv r]|                     d| j        j        ¦  «        }|                     d| j        j        ¦  «        }| j                             ||¦  «         �Œ|dk    r|�| j                             |¦  «         �Œ8|dk    r|�| j                             |¦  «         �Œ\|dk    r| j                             |¦  «         �Œ~|dk    r| j                             |¦  «         �Œ |dk    r| j                             |¦  «         �ŒÂ|dk    r|| j        _        �ŒÖd	S )z`This takes a set of states, and outputs the PDF operators
        needed to set those propertiesÚ	transformr   rV   rT   é   r}   r   ÚstrokeColorNÚstrokeWidthÚstrokeLineCapÚstrokeLineJoinÚstrokeDashArrayÚ	fillColor)r„   rƒ   rƒ   r„   ÚfillOpacityÚstrokeOpacityÚfillOverprintÚstrokeOverprintÚoverprintMaskrŸ   )r   Ú	invariantÚsortedÚitemsr$   r°   r   rª   ÚsetLineWidthÚ
setLineCapÚsetLineJoinr!   ÚlistÚtuplerW   ÚsetDashr   r®   ÚgetÚ	_fontnameÚ	_fontsizeÚsetFontÚsetFillAlphaÚsetStrokeAlphaÚsetFillOverprintÚsetStrokeOverprintÚsetOverprintMaskÚ	_fillMode)r   ÚdeltaÚnewStateÚkeyÚvalueÚphaseÚfontnameÚfontsizes           r   r(   z_PDFRenderer.applyStateChangesÒ   s@  € õ 5>Ô4GÐZ�6 %§+¢+¡-¤-Ñ0Ô0Ð0ÈUÏ[Ê[É]Ì]ð <	/ñ <	/‰JˆC�Ø�kÒ!Ð!Ø”×&Ò& u¨Q¤x°°q´¸5À¼8Ø!& q¤¨5°¬8°U¸1´Xñ?ô ?ð ?ð ?à˜Ò%Ð%ð �=Ø#$�D”L�Là#$�D”LØ×'Ò'¨Ñ.Ô.Ð.Ð.Ø˜Ò%Ð%Ø”×)Ò)¨%Ñ0Ô0Ð0Ð0Ø˜Ò'Ð'Ø”×'Ò'¨Ñ.Ô.Ð.Ð.ØÐ(Ò(Ð(Ø”×(Ò(¨Ñ/Ô/Ð/Ð/ð Ð)Ò)Ð)Øð +Ý! %­­e¨Ñ5Ô5ð "½#¸e¹*¼*Àaº-¸-ÍJÐW\Ð]^ÔW_ÕafÕgkÐ`lÑLmÔLm¸-Ø % a¤˜Ø % a¤˜˜à !˜Ø”L×(Ò(¨¨uÑ5Ô5Ð5Ñ5à”L×(Ò(Ñ*Ô*Ð*Ñ*Ø˜Ò#Ð#ð �=Ø!"�D”J‘Jà!"�D”JØ×%Ò% eÑ,Ô,Ð,Ñ,ØÐ0Ð0Ð0ð !Ÿ9š9 Z°´Ô1GÑHÔH�Ø Ÿ9š9 Z°´Ô1GÑHÔH�Ø”×$Ò$ X¨xÑ8Ô8Ð8Ñ8Ø�mÒ#Ð#ØÐ$Ø”L×-Ò-¨eÑ4Ô4Ð4ùØ�oÒ%Ð%ØÐ$Ø”L×/Ò/°Ñ6Ô6Ð6ùØ�oÒ%Ð%Ø”×-Ò-¨eÑ4Ô4Ð4Ñ4ØÐ'Ò'Ð'Ø”×/Ò/°Ñ6Ô6Ð6Ñ6Ø�oÒ%Ð%Ø”×-Ò-¨eÑ4Ô4Ð4Ñ4Ø�j’�Ø).�”Ô&ùðy<	/ð <	/r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r.   r:   rC   rK   rR   rb   rt   rw   rz   r�   r]   rª   r®   r(   © r   r   r   r       s  € € € € € ð:ð :ðð ð ð(ð (ð (ð(ð ð ð&ð ð ðBð Bð Bðð ð ð(ð (ð (ðð ð ð2Nð Nð Nðð ð ðMð Mð Mð*Eð Eð Eð2'ð 'ð 'ð%ð %ð %ð?/ð ?/ð ?/ð ?/ð ?/r   r   )ÚFlowablec                   ó   — e Zd ZdZd„ Zd„ ZdS )ÚGraphicsFlowablez'Flowable wrapper around a Pingo drawingc                 óX   — || _         | j         j        | _        | j         j        | _        d S rE   )r   r7   r8   )r   r   s     r   r   zGraphicsFlowable.__init__  s%   € ØˆŒØ”\Ô'ˆŒ
Ø”lÔ)ˆŒˆˆr   c                 ó>   — t          | j        | j        dd¦  «         d S r   )r   r   Úcanvr   s    r   r   zGraphicsFlowable.draw  s    € ÝˆTŒ\˜4œ9 a¨Ñ+Ô+Ð+Ð+Ð+r   N)r×   rØ   rÙ   rÚ   r   r   rÛ   r   r   rÞ   rÞ     s8   € € € € € Ø1Ð1ð*ð *ð *ð
,ð ,ð ,ð ,ð ,r   rÞ   rœ   rV   c                 óö  — t          | ¦  «        } dD ]=}d|z   }t          | ||                     |t          d|z            ¦  «        ¦  «        ||<   Œ>|                     dd¦  «        }t	          |fi |¤Ž}	|r7|	                     t          j        d¦  «         |	                     dd|¦  «         |	 	                    |¦  «         |r6|	 
                    | j        | j        f¦  «         t          | |	d	d	|¬
¦  «         nB|	                     t          j        d¦  «         d}
d}|
| j        z
  }
t          | |	d|
|¬
¦  «         |r!d	dlm}  ||¬¦  «        |	j        j        _        |	                     ¦   «          |	                     ¦   «          t*          j        dk    rat/          |d¦  «        sS	 d	dl}d	dl}|                     |¦  «                             dd¦  «         |                     |¦  «         dS #  Y dS xY wdS dS )zàMakes a one-page PDF with just the drawing.

    If autoSize=1, the PDF will be the same size as
    the drawing; if 0, it will place the drawing on
    an A4 page with a title above it - possibly overflowing
    if too big.)ÚNameÚSizeÚinitialFontr–   ÚmetadataPathNé$   éP   éî  r   r   é   éä  rV   )ÚXMP)r=   ÚmacÚwriteÚCAROzPDF )r
   rˆ   r*   r   r   rÉ   r   ÚdefaultGraphicsFontNamer�   ÚsetTitleÚsetPageSizer7   r8   r   Úreportlab.pdfbase.pdfdocrì   Ú_docÚCatalogÚMetadataÚshowPageÚsaveÚsysÚplatformr>   ÚmacfsÚ
macostoolsÚFSSpecÚSetCreatorTypeÚtouched)ÚdÚfnÚmsgr   ÚautoSizeÚkwdsr   Úaræ   r¬   r   ra   rì   rû   rü   s                  r   Ú
drawToFiler    s+  € õ 	˜AÑÔ€AØð Dð DˆØ˜!‰OˆÝ˜!˜A˜dŸhšh q­¸¸q¹Ô)AÑBÔBÑCÔCˆˆQ‰ˆØ—8’8˜N¨4Ñ0Ô0€LÝˆrÐÐ�DÐÐ€AØ
ð #Ø	�	Š	•)Ô3°RÑ8Ô8Ð8Ø	�Š�R˜˜cÑ"Ô"Ð"Ø‡J‚Jˆs�O„O€Oàð 	5Ø	�Š�q”w ¤Ð)Ñ*Ô*Ð*ÝˆQ��1�a lÐ3Ñ3Ô3Ð3Ð3ð 	
�	Š	•)Ô3°RÑ8Ô8Ð8ØˆØˆØ�”‰LˆÝˆQ��2�q |Ð4Ñ4Ô4Ð4àð 9Ø0Ð0Ð0Ð0Ð0Ð0Ø"% #¨<Ð"8Ñ"8Ô"8ˆŒŒÔØ‡J‚J�L„L€LØ‡F‚F�H„H€HÝ
„|�UÒÐ¥7¨2¨wÑ#7Ô#7Ðð	Ø$Ð$Ð$Ð$Ð$Ð$Ð$Ð$Ø�LŠL˜ÑÔ×+Ò+¨F°FÑ;Ô;Ð;Ø×Ò˜rÑ"Ô"Ð"Ð"Ð"øð	ØˆDˆDøøøð ÐÐÐs   Æ'AG/ Ç/G4c                 ój   — t          ¦   «         }t          | |f|||dœ|¤Ž |                     ¦   «         S )z>Returns a PDF as a string in memory, without touching the disk)r  r   r  )r   r  Úgetvalue)r   r  r   r  r  Úss         r   ÚdrawToStringr
  H  s:   € å‰	Œ	€AÝˆq�!ÐR˜¨<ÀÐRÐRÈTÐRÐRÐRØ�:Š:‰<Œ<Ðr   ÚpdfoutFc                 óÜ  — ddl m}m} ddlm} dd l}|j                             | ¦  «        s|                     | ¦  «         |j         	                    | d¦  «        }t          |¦  «        }|                     |d¦  «         |                     ddd¦  «         dd	lm} g }	t          |¦  «        D ]R}
|
dd
…         dk    rBt!          ||
¦  «        } |¦   «         }t!          |dd¦  «        }|	                     ||f¦  «         ŒS|                     |d¦  «         d}d}|	D ]õ\  }}|€J d|z  ¦   «         ‚|dk     r|                     ¦   «          d}|dz
  }|                     |d¦  «         |                     d|d|z  ¦  «         |                     |d¦  «         |dz
  }|                     d|¦  «        }|                     |¦  «         |                     |¦  «         |                     ¦   «         }||j        z
  }t1          ||d|¦  «         |dz   }Œö|dk    r|                     ¦   «          |                     ¦   «          |s|dk    r!t5          dt7          |¦  «        z  ¦  «         d S d S )Nr   )Ú_baseGFontNameÚ_baseGFontNameBI)ÚverbosezrenderPDF.pdfrç   rè   ré   zGraphics Test)Ú
testshapesé
   Ú
getDrawingrÚ   rœ   rê   rë   rV   zDrawing %d has no docstring!i,  é   z
Drawing %dé   rT   zsaved %s)r¡   r  r  Úreportlab.rl_configr  r?   r=   ÚisdirÚmkdirÚjoinr   rÉ   r�   Úreportlab.graphicsr  Údirrˆ   Úappendr÷   Ú	beginTextÚ	textLinesÚdrawTextÚgetYr8   r   rø   ÚprintÚascii)ÚoutDirÚshoutr  r  r  r?   r  r¬   r  ÚdrawingsÚfuncnameÚfuncr   Ú	docstringr   ra   ÚtextObjs                    r   Útestr)  T  s³  € ØJÐJÐJÐJÐJÐJÐJÐJØ+Ð+Ð+Ð+Ð+Ð+Ø€I€I€IØŒ7�=Š=˜Ñ Ô ð Ø
�Š�ÑÔÐØ	Œ�Š�f˜_Ñ	-Ô	-€BÝˆr‰
Œ
€AØ‡I‚Iˆn˜bÑ!Ô!Ð!Ø‡L‚L��S˜/Ñ*Ô*Ð*ð .Ð-Ð-Ð-Ð-Ð-Ø€HÝ˜
‘O”Oð 2ð 2ˆØ�A�b�DŒ>˜\Ò)Ð)Ý˜: hÑ/Ô/ˆDØ�d‘f”fˆGÝ  Y¨rÑ2Ô2ˆIØ�OŠO˜W iÐ0Ñ1Ô1Ð1øð ‡I‚Iˆn˜bÑ!Ô!Ð!Ø€AØ	€AØ (ð ð Ñˆ�)ØÐ%Ð%Ð(FÈÑ(JÑ%Ô%Ð%ØˆsŠ7ˆ7Ø�JŠJ‰LŒLˆLØˆAà�‰FˆØ	�	Š	Ð" 2Ñ&Ô&Ð&Ø	�Š�R˜˜L¨1Ñ,Ñ-Ô-Ð-Ø	�	Š	�. Ñ$Ô$Ð$Ø�‰FˆØ—+’+˜b !Ñ$Ô$ˆØ×Ò˜)Ñ$Ô$Ð$Ø	�
Š
�7ÑÔÐØ�LŠL‰NŒNˆØ�”ÑˆÝˆW�a˜˜QÑÔÐØ�‰EˆˆØˆ#‚v€vˆq�zŠz‰|Œ|ˆ|à‡F‚F�H„H€HØð &�˜’	�	Ýˆj�5 ™9œ9Ñ$Ñ%Ô%Ð%Ð%Ð%ð �	r   Ú__main__T)r#  N)r  F)Ú__version__rÚ   Úior   r¡   Úreportlab.pdfgen.canvasr   Úreportlab.pdfbase.pdfmetricsr   Ú	reportlabr   Úreportlab.graphics.renderbaser   r	   r
   r   Ú_unset_r   r   Úreportlab.platypusrÜ   rÞ   r  r
  r)  r×   rù   rW   ÚargvÚoutdirrÛ   r   r   ú<module>r5     så  ðð €ð		€ð Ð Ð Ð Ð Ð à 'Ð 'Ð 'Ð 'Ø *Ð *Ð *Ð *Ð *Ð *Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø Ð Ð Ð Ð Ð Ø fÐ fÐ fÐ fÐ fÐ fÐ fÐ fÐ fÐ fÐ fÐ fð .7Ô->ð Rð Rð Rð Rð
q/ð q/ð q/ð q/ð q/�8ñ q/ô q/ð q/ðf (Ð 'Ð 'Ð 'Ð 'Ð 'ð,ð ,ð ,ð ,ð ,�xñ ,ô ,ð ,ð ¨9Ô+<Àqð (ð (ð (ð (ðT ¨Ô):ÀAð ð ð ð ð2&ð 2&ð 2&ð 2&ðh ˆZÒÐØ€DˆtÐÑÔÐØ€J€J€JØ
€sˆ3Œ8�}„}�Q‚€Ø”˜!”ˆˆàˆØ€Dˆ�dÐÑÔÐÐÐð Ðr   