3 }úÿ\Öã@s@ddlmZddlmZddlZGdd„deƒZdZdZd Z dS) é)ÚEpsImagePlugin)Úpy3éNc@s^eZdZdZddd„Zdd„Zddd„Zd d „Zd d „Zd d„Z dd„Z dd„Z ddd„Z dS)ÚPSDrawzi Sets up printing to the given file. If **fp** is omitted, :py:attr:`sys.stdout` is assumed. NcCs|s tj}||_dS)N)ÚsysÚstdoutÚfp)Úselfr©r úb/private/var/folders/pf/wv4htv3x0qs2c2mp0dnn0kchsvlck3/T/pip-install-i584jbuk/Pillow/PIL/PSDraw.pyÚ__init__ szPSDraw.__init__cCs6t s|jtjkr |jj|ƒn|jjt|dƒƒdS)NzUTF-8)rrrrÚwriteÚbytes)r Zto_writer r r Ú _fp_write%szPSDraw._fp_writecCs2|jdƒ|jtƒ|jtƒ|jdƒi|_dS)z=Set up printing of a document. (Write Postscript DSC header.)zD%!PS-Adobe-3.0 save /showpage { } def %%EndComments %%BeginDocument z %%EndProlog N)rÚ EDROFF_PSÚVDI_PSÚisofont)r Úidr r r Úbegin_document+s     zPSDraw.begin_documentcCs$|jdƒt|jdƒr |jjƒdS)z-Ends printing. (Write Postscript DSC footer.)z%%%EndDocument restore showpage %%End ÚflushN)rÚhasattrrr)r r r r Ú end_document9s  zPSDraw.end_documentcCs<||jkr&|jd||fƒd|j|<|jd||fƒdS)z~ Selects which font to use. :param font: A Postscript font name :param size: Size in points. z#/PSDraw-%s ISOLatin1Encoding /%s E rz/F0 %d /PSDraw-%s F N)rr)r ÚfontÚsizer r r ÚsetfontAs    zPSDraw.setfontcCs||}|jd|ƒdS)z¿ Draws a line between the two points. Coordinates are given in Postscript point coordinates (72 points per inch, (0, 0) is the lower left corner of the page). z%d %d %d %d Vl N)r)r Zxy0Zxy1Úxyr r r ÚlinePsz PSDraw.linecCs|jd|ƒdS)a8 Draws a rectangle. :param box: A 4-tuple of integers whose order and function is currently undocumented. Hint: the tuple is passed into this format string: .. code-block:: python %d %d M %d %d 0 Vr z%d %d M %d %d 0 Vr N)r)r Úboxr r r Ú rectangleYs zPSDraw.rectanglecCs<dj|jdƒƒ}dj|jdƒƒ}||f}|jd|ƒdS)zŠ Draws text at the given position. You must use :py:meth:`~PIL.PSDraw.PSDraw.setfont` before calling this method. z\(ú(z\)ú)z%d %d M (%s) S N)ÚjoinÚsplitr)r rÚtextr r r r#hs z PSDraw.textc Cs4|s|jdkrd}nd}t|jddƒ|}t|jddƒ|}t|d|dƒ}t|d|dƒ}||kr„|||}|}||krœ|||}|}||d|d}||d|d} |jd || fƒ||f|jkr||jd} ||jd} |jd | | fƒtj||jd dƒ|jd ƒd S) z,Draw a PIL image, centered in the given box.Ú1éÈédréHréézgsave %f %f translate z %f %f scale Nz grestore )ÚmodeÚfloatrrrZ_saver) r rZimZdpiÚxÚyZxmaxZymaxZdxZdyZsxZsyr r r Úimagers.   z PSDraw.image)N)N)N) Ú__name__Ú __module__Ú __qualname__Ú__doc__r rrrrrrr#r.r r r r rs    ra×/S { show } bind def /P { moveto show } bind def /M { moveto } bind def /X { 0 rmoveto } bind def /Y { 0 exch rmoveto } bind def /E { findfont dup maxlength dict begin { 1 index /FID ne { def } { pop pop } ifelse } forall /Encoding exch def dup /FontName exch def currentdict end definefont pop } bind def /F { findfont exch scalefont dup setfont [ exch /setfont cvx ] cvx bind def } bind def añ/Vm { moveto } bind def /Va { newpath arcn stroke } bind def /Vl { moveto lineto stroke } bind def /Vc { newpath 0 360 arc closepath } bind def /Vr { exch dup 0 rlineto exch dup neg 0 exch rlineto exch neg 0 rlineto 0 exch rlineto 100 div setgray fill 0 setgray } bind def /Tm matrix def /Ve { Tm currentmatrix pop translate scale newpath 0 0 .5 0 360 arc closepath Tm setmatrix } bind def /Vf { currentgray exch setgray fill setgray } bind def aã/landscape false def /errorBUF 200 string def /errorNL { currentpoint 10 sub exch pop 72 exch moveto } def errordict begin /handleerror { initmatrix /Courier findfont 10 scalefont setfont newpath 72 720 moveto $error begin /newerror false def (PostScript Error) show errorNL errorNL (Error: ) show /errorname load errorBUF cvs show errorNL errorNL (Command: ) show /command load dup type /stringtype ne { errorBUF cvs } if show errorNL errorNL (VMstatus: ) show vmstatus errorBUF cvs show ( bytes available, ) show errorBUF cvs show ( bytes used at level ) show errorBUF cvs show errorNL errorNL (Operand stargck: ) show errorNL /ostargck load { dup type /stringtype ne { errorBUF cvs } if 72 0 rmoveto show errorNL } forall errorNL (Execution stargck: ) show errorNL /estargck load { dup type /stringtype ne { errorBUF cvs } if 72 0 rmoveto show errorNL } forall end showpage } def end ) ÚrZ_utilrrÚobjectrrrZERROR_PSr r r r Ús  "