Ver http://effbot.org/imagingbook/psdraw.htm
Tenga en cuenta que:
el módulo PSDraw no parece haberse mantenido de forma activa desde el año 2005; Supongo que la mayor parte del esfuerzo se redirigió para apoyar el formato PDF en su lugar. Puede ser más feliz usando pypdf;
Cuenta con comentarios como '# FIXME: incompleta' y 'aún no implementado' en la fuente
no parece tener ningún método para configurar el tamaño de página - el cual por lo que recuerdo significa que por defecto a A4 (8,26 x 11,69 pulgadas)
todas las medidas están en puntos, a 72 puntos por pulgada.
Usted tendrá que hacer algo como:
import Image
import PSDraw
# fns for measurement conversion
PTS = lambda x: 1.00 * x # points
INS = lambda x: 72.00 * x # inches-to-points
CMS = lambda x: 28.35 * x # centimeters-to-points
outputFile = 'myfilename.ps'
outputFileTitle = 'Wheel Tag 36147'
myf = open(outputFile,'w')
ps = PSDraw.PSDraw(myf)
ps.begin_document(outputFileTitle)
ps es ahora un objeto PSDraw que escribir PostScript en el archivo especificado, y la cabecera del documento ha sido escrito - ya está listo para comenzar dibujo cosas.
Para añadir una imagen:
im = Image.open("myimage.jpg")
box = ( # bounding-box for positioning on page
INS(1), # left
INS(1), # top
INS(3), # right
INS(3) # bottom
)
dpi = 300 # desired on-page resolution
ps.image(box, im, dpi)
para añadir texto:
ps.setfont("Helvetica", PTS(12)) # PostScript fonts only -
# must be one which your printer has available
loc = ( # where to put the text?
INS(1), # horizontal value - I do not know whether it is left- or middle-aligned
INS(3.25) # vertical value - I do not know whether it is top- or bottom-aligned
)
ps.text(loc, "Here is some text")
Para añadir una línea:
lineFrom = (INS(4), INS(1))
lineTo = (INS(4), INS(9))
ps.line(lineFrom, lineTo)
... y yo aún no hay opciones para cambiar el peso de la brazada
Cuando haya terminado, hay que cerrar el archivo fuera como:
ps.end_document()
myf.close()
Editar: que estaba haciendo un poco de lectura sobre la configuración de grosores de trazo, y me encontré con un módulo diferente, psfile : http://seehuhn.de/pages/psfile#sec:2.0.0 El módulo en sí parece bastante minimalista, está escribiendo una gran cantidad de postdata sin formato, pero debería darle una mejor idea de lo que está sucediendo detrás de escena.