Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 Neb3;@sdZdZddlmZddlTddlmZddlmZddl m Z ddl m Z m Z mZmZe jfd d ZGd d d e Zdd lmZGdddeZde jdifddZde jdifddZdddZedkr eddddlZeejdkrejdZndZeedddS)z3.3.0zRender 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 getStateDeltarenderScaledDrawingSTATE_DEFAULTScCs"t}|jt|||||ddS)z As it says) showBoundaryN) _PDFRendererdrawr )drawingZcanvasxyr Rr=/tmp/tmp4i9tl1d3/lib64/python/reportlab/graphics/renderPDF.pyr sr c@seZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ ddZ ddZddZddZddZddZd S)!r zThis 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.cCsd|_d|_dS)Nr)_stroke_fill)selfrrr__init__%sz_PDFRenderer.__init__cCslt|to|js|jjt|}|jj||j|i|j ||jj t|to\|jsh|jj dS)zEThis is the recursive method called for each node in the treeN) isinstanceZPath isClipPath_canvasZ saveStater_trackerpushapplyStateChangesZdrawNodeDispatcherpopZ restoreState)rnodeZdeltasrrrdrawNode)s     z_PDFRenderer.drawNodec Csn|j|jkodknrB|jj|j|j|j|j|j|j dn(|jj |j|j|j|j|j|j |jddS)Nr)strokefill)r"r!) rxryrrectrrwidthheightrrZ roundRect)rr%rrrdrawRect=s  z_PDFRenderer.drawRectcCsB|j}|r>t|ds"tjj|jr>|jj||j|j|j|j dS)Nmode) pathhasattrosexistsrZdrawInlineImagerrr&r')rimager*rrr drawImagePs z_PDFRenderer.drawImagecCs$|jr |jj|j|j|j|jdS)N)rrlinex1y1x2y2)rr0rrrdrawLineZsz_PDFRenderer.drawLinecCs$|jj|j|j|j|j|jddS)N)r"r!)rcirclecxcyrrr)rr6rrr drawCircle^s z_PDFRenderer.drawCirclecCs|jrt|jdkstd|jdd|jdd}}|jj}|j|d|dx0tdt|dD]}|j||||dqjW|jj |dS)Nz#Polyline must have 2 or more pointsr) rlenpointsAssertionErrorr beginPathmoveTorangelineTodrawPath)rZpolylineheadtailr*irrr drawPolyLinees z_PDFRenderer.drawPolyLinec Cs$|jr|j|jn|j|j|j|j|jf\}}}}}|j\}}} |dkrT|}||} |j j } |dksv|dkr| dks| dkr| j ||| j |||||||||| nJ| j |||||||||| | j |||| |||| || | j|j j| |j|jddS)Nr)r"r!)ZannularrDZ asPolygoncenterxcenteryradiusstartangledegreesendangledegreesZ _xtraRadiirr@rAZarcToZarccloserr) rZwedgerIrJrKrLrMZyradiusZradius1Zyradius1Zangler*rrr drawWedgeos("     z_PDFRenderer.drawWedgecCsP|j|j}|j|j}|j|j}|j|j}|jj|||||j|jddS)N)r"r!)r7r#r8r$rellipserr)rrPr1r3r2r4rrr drawEllipses     z_PDFRenderer.drawEllipsecCst|jdkstd|jdd|jdd}}|jj}|j|d|dx0tdt|dD]}|j||||dqdW|j|jj ||j |j ddS)Nr;z#Polyline must have 2 or more pointsrr<)r!r") r=r>r?rr@rArBrCrNrDrr)rZpolygonrErFr*rGrrr drawPolygons z_PDFRenderer.drawPolygoncCst|dd}|dk}|dk}|jr&|s2|jo.|r|jj}|d|j|j|j|jf\}}}} } |dkr|d |d } } t | | | | } |d kr|| 8}nF|dkr|| d8}n0|dkr|t || | | | | 8}nt dt ||j j||| |pdddS)NtextRenderModerr;r<Z textAnchorstart inheritedfontNamefontSizeendZmiddleg?numericzbad value for textAnchor )r))rr;rTrU)r<r;rVrU)rWrX)getattrrrrZgetStaterrtextencodingrZ numericXShift ValueErrorstrr drawString)rZ stringObjrSZneedFillZ needStrokeSZ text_anchorrrr^encfontZ font_sizeZtextLenrrrrbs"  $ z_PDFRenderer.drawStringc Csddlm}|jj}|j|j|j|jf}t|dd}|j }|j }||||oR|dkd}|jj } |j rn|jj n| } t|dd} |dkr|r|r| r| ||dd | ||d| d q| |||| d n2|dkr| |||| d n|sd}| |||| d dS) Nr) _renderPath autocloseZpdf)Z forceClosefillModeZsvg)r"r!)r!r"ri)r"r!ri)reportlab.graphics.shapesrfrr@rArCZcurveTorNr]rrrDrZclipPath) rr*rfZpdfPathZ drawFuncsrgr"r!ZisClosedZdPZcPrirrrrDs(    z_PDFRenderer.drawPathcCs|jj|dS)N)rsetStrokeColor)rcrrrrksz_PDFRenderer.setStrokeColorcCs|jj|dS)N)r setFillColor)rrlrrrrmsz_PDFRenderer.setFillColorc CsLxDtjrt|jn|jD]$\}}|dkr`|jj|d|d|d|d|d|dq|dkr|d krxd|_nd|_|j|q|d kr|jj|q|d kr|jj |q|d kr|jj |q|d kr@|r4t |t t fr t|dkr t |dt t fr |d}|d}nd}|jj||n |jjq|dkrn|d kr\d|_nd|_|j|q|dkr|jd|jj}|jd|jj}|jj||q|dkr|d k rD|jj|q|dkr|d k rD|jj|q|dkr|jj|q|dkr|jj|q|dkr4|jj|q|dkr||j_qWd S)z`This takes a set of states, and outputs the PDF operators needed to set those properties transformrr<r;rTrVZ strokeColorNZ strokeWidthZ strokeLineCapZstrokeLineJoinZstrokeDashArrayZ fillColorrZrYZ fillOpacityZ strokeOpacityZ fillOverprintZstrokeOverprintZ overprintMaskri)rZrY)rZ invariantsorteditemsrrnrrkZ setLineWidthZ setLineCapZ setLineJoinrlisttupler=ZsetDashrrmgetZ _fontnameZ _fontsizesetFontZ setFillAlphaZsetStrokeAlphaZsetFillOverprintZsetStrokeOverprintZsetOverprintMaskZ _fillMode)rdeltaZnewStatekeyvalueZphaseZfontnameZfontsizerrrrs\(  2             z_PDFRenderer.applyStateChangesN)__name__ __module__ __qualname____doc__rr r(r/r5r:rHrOrQrRrbrDrkrmrrrrrr s   r )Flowablec@s eZdZdZddZddZdS)GraphicsFlowablez'Flowable wrapper around a Pingo drawingcCs||_|jj|_|jj|_dS)N)rr&r')rrrrrrs zGraphicsFlowable.__init__cCst|j|jdddS)Nr)r rZcanv)rrrrr szGraphicsFlowable.drawN)ryrzr{r|rr rrrrr~sr~rhr<c Cs:t|}x4dD],}d|}t|||j|td|||<qWt|f|}|rj|jtjd|jdd||j ||r|j |j |j ft ||dd|d n2|jtjd d } d } | |j } t ||d| |d |j|jtjd kot|d r6y0ddl} ddl} | j|jdd| j|Wn YnXdS)zMakes 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.NameSizeZ initialFontre$Pir)r ir<ZmacwriteNZCAROzPDF )rr)r r]rr rrurZdefaultGraphicsFontNamerbZsetTitleZ setPageSizer&r'r showPagesavesysplatformr+macfs macostoolsZFSSpecZSetCreatorTypeZtouched) dfnmsgr autoSize canvasKwdsrarlrrGrrrrr drawToFiles4 $   rcCs"t}t||||||d|jS)z>Returns a PDF as a string in memory, without touching the disk)rr rr)rrgetvalue)rrr rrsrrr drawToStringDsrpdfoutFcCsddlm}m}ddlm}ddl}|jj|s:|j||jj |d}t |}|j |d|j ddddd l m}g} xJt|D]>} | dd d krt|| } | } t| d d } | j| | fqW|j |dd}d}x| D]\} } | dk std||dkr|jd}|d}|j |d|j d|d||j |d|d}|jd|}|j| |j||j}|| j}t| |d||d}qW|dkr|j|j|s|dkrtdt|dS)Nr)_baseGFontName_baseGFontNameBI)verbosez renderPDF.pdfrriz Graphics Test) testshapes Z getDrawingr|rhrir<zDrawing %d has no docstring!i,z Drawing %dr;zsaved %s)rjrrZreportlab.rl_configrr,r*isdirmkdirjoinrrurbZreportlab.graphicsrdirr]appendr?rZ beginTextZ textLinesZdrawTextZgetYr'r rprintascii)ZoutDirshoutrrrr,rrlrZdrawingsfuncnamefuncrZ docstringrrGZtextObjrrrtestPsT                 r__main__T)rN)rF) __version__r|iorrjZreportlab.pdfgen.canvasrZreportlab.pdfbase.pdfmetricsr reportlabrZreportlab.graphics.renderbaserrr r Z_unset_r r Zreportlab.platypusr}r~rrrryrr=argvoutdirrrrrs,     t  & 4