См. http://effbot.org/imagingbook/psdraw.htm
Обратите внимание, что:
модуль PSDraw, по-видимому, активно не поддерживается с 2005 года;Я предполагаю, что большая часть усилий была перенаправлена на поддержку формата PDF.Вы могли бы быть счастливее, используя вместо этого pypdf;
у него есть комментарии типа '# FIXME: не завершено' и 'NOT YET IMPLEMENTED' в источнике
Похоже, что у него нет какого-либо метода установки размера страницы - что, как я помню, означает, что по умолчанию используется формат A4 (8,26 x 11,69 дюймов)
все измерения в точках, при 72точек на дюйм.
Вам нужно будет сделать что-то вроде:
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 теперь объект PSDraw, который будет записывать PostScript в указанный файл, иЗаголовок документа был написан - вы готовы начать рисовать материал.
Чтобы добавить изображение:
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)
Чтобы добавить текст:
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")
Чтобы добавитьстрока:
lineFrom = ( INS(4), INS(1) )
lineTo = ( INS(4), INS(9) )
ps.line( lineFrom, lineTo )
... и я не вижу никаких вариантов изменения веса удара.
Когда вы закончите, вы должны закрыть файл как:
ps.end_document()
myf.close()
Редактировать: Я немного читал о настройке веса удара и наткнулся на другой модуль, psfile: http://seehuhn.de/pages/psfile#sec:2.0.0 Сам модуль выглядит довольно минимально - он пишет много сырых постскриптов - но он должен дать вам лучшее представление о том, что происходит за кулисами.