a :jgýã@sNddlmZddlZddlmZmZddlmZGdd„dƒZdZ d Z d Z dS) é)Ú annotationsN)ÚIOÚ TYPE_CHECKINGé)ÚEpsImagePluginc@s®eZdZdZd&dddœdd„Zd'ddd œd d „Zdd œd d„Zddddœdd„Zddddœdd„Zdddœdd„Z ddddœdd„Z e r”dd l m Z d(dd!d"dd#œd$d%„ZdS))ÚPSDrawzi Sets up printing to the given file. If ``fp`` is omitted, ``sys.stdout.buffer`` is assumed. NzIO[bytes] | NoneÚNone)ÚfpÚreturncCs|s tjj}||_dS)N)ÚsysÚstdoutÚbufferr )Úselfr ©rú4/usr/local/lib/python3.9/site-packages/PIL/PSDraw.pyÚ__init__"szPSDraw.__init__z str | None)Úidr cCs:|j d¡|j t¡|j t¡|j d¡i|_dS)z=Set up printing of a document. (Write PostScript DSC header.)sD%!PS-Adobe-3.0 save /showpage { } def %%EndComments %%BeginDocument s %%EndProlog N)r ÚwriteÚ EDROFF_PSÚVDI_PSÚisofont)rrrrrÚbegin_document'sÿ   zPSDraw.begin_document)r cCs&|j d¡t|jdƒr"|j ¡dS)z-Ends printing. (Write PostScript DSC footer.)s%%%EndDocument restore showpage %%End ÚflushN)r rÚhasattrr)rrrrÚ end_document7s  zPSDraw.end_documentÚstrÚint)ÚfontÚsizer cCsJt|dƒ}||jvr2|j d||f¡d|j|<|j d||f¡dS)z~ Selects which font to use. :param font: A PostScript font name :param size: Size in points. úUTF-8s#/PSDraw-%s ISOLatin1Encoding /%s E rs/F0 %d /PSDraw-%s F N)Úbytesrr r)rrrZ font_bytesrrrÚsetfont=s   ÿ zPSDraw.setfontztuple[int, int])Úxy0Úxy1r cCs|j dg|¢|¢R¡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). s%d %d %d %d Vl N©r r)rr"r#rrrÚlineNsz PSDraw.lineztuple[int, int, int, int])Úboxr cCs|j d|¡dS)z‰ Draws a rectangle. :param box: A tuple of four integers, specifying left, bottom, width and height. s%d %d M 0 %d %d Vr Nr$)rr&rrrÚ rectangleVszPSDraw.rectangle)ÚxyÚtextr cCsDt|dƒ}d | d¡¡}d | d¡¡}|j d||f¡dS)zŠ Draws text at the given position. You must use :py:meth:`~PIL.PSDraw.PSDraw.setfont` before calling this method. rs\(ó(s\)ó)s%d %d M (%s) S N)r ÚjoinÚsplitr r)rr(r)Z text_bytesrrrr)_s z PSDraw.textr)ÚImagez Image.Imagez int | None)r&ÚimÚdpir c Cs2|s|jdkrd}nd}|jdd|}|jdd|}t|d|dƒ}t|d|dƒ}||kr||||}|}||kr”|||}|}||d|d}||d|d} |j d || f¡||f|jkr||jd} ||jd} |j d | | f¡t ||jd d¡|j d ¡d S)z,Draw a PIL image, centered in the given box.Ú1éÈédréHréésgsave %f %f translate s %f %f scale Ús grestore N)ÚmoderÚfloatr rrZ_save) rr&r/r0ÚxÚyZxmaxZymaxZdxZdyÚsxZsyrrrÚimagels.   z PSDraw.image)N)N)N)Ú__name__Ú __module__Ú __qualname__Ú__doc__rrrr!r%r'r)rr7r.r=rrrrrs   ÿrs×/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 sß/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 0 exch rlineto exch neg 0 rlineto 0 exch neg rlineto setgray fill } 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 sã/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 ) Ú __future__rr Útypingrrr7rrrrZERROR_PSrrrrÚs