見る http://effbot.org/imagingbook/psdraw.htm
Beachten Sie das:
-
das PSDraw-Modul scheint seit 2005 nicht mehr aktiv gepflegt zu werden; ich würde vermuten, dass die meisten Bemühungen stattdessen in die Unterstützung des PDF-Formats geflossen sind. Sie sind vielleicht glücklicher, wenn Sie stattdessen pypdf verwenden;
-
der Quelltext enthält Kommentare wie '# FIXME: unvollständig' und 'NOT YET IMPLEMENTED'.
-
es scheint keine Möglichkeit zu geben, die Seitengröße einzustellen - was, wenn ich mich recht erinnere, bedeutet, dass sie standardmäßig auf A4 (8,26 x 11,69 Zoll) eingestellt ist
-
alle Maße sind in Punkten angegeben, mit 72 Punkten pro Zoll.
Sie müssen etwa so vorgehen:
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 ist nun ein PSDraw-Objekt, das PostScript in die angegebene Datei schreibt, und der Dokumentenkopf wurde geschrieben - Sie können nun mit dem Zeichnen beginnen.
So fügen Sie ein Bild hinzu:
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)
Zum Hinzufügen von Text:
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")
Um eine Zeile hinzuzufügen:
lineFrom = ( INS(4), INS(1) )
lineTo = ( INS(4), INS(9) )
ps.line( lineFrom, lineTo )
... und ich sehe keine Optionen zur Änderung des Hubgewichts.
Wenn Sie fertig sind, müssen Sie die Datei wie folgt abschließen:
ps.end_document()
myf.close()
Bearbeiten: Ich habe mich ein wenig mit der Einstellung von Hubgewichten beschäftigt und bin dabei auf ein anderes Modul gestoßen, psfile: http://seehuhn.de/pages/psfile#sec:2.0.0 Das Modul selbst sieht ziemlich minimalistisch aus - er schreibt eine Menge rohes Postskriptum - aber es sollte Ihnen eine bessere Vorstellung davon geben, was hinter den Kulissen vor sich geht.