用Python打印图形
我需要从python打印“轮子标签”。控制盘标记将包含图像、线条和文本 Python教程有两段关于使用图像库创建postscript文件的内容。看完之后,我仍然不知道如何布置数据。我希望有人能提供如何布局图片、文本和线条的示例 谢谢你的帮助 见 请注意:用Python打印图形,python,printing,postscript,Python,Printing,Postscript,我需要从python打印“轮子标签”。控制盘标记将包含图像、线条和文本 Python教程有两段关于使用图像库创建postscript文件的内容。看完之后,我仍然不知道如何布置数据。我希望有人能提供如何布局图片、文本和线条的示例 谢谢你的帮助 见 请注意: PSDraw模块自2005年以来似乎没有得到积极维护;我想大部分的工作都已经转向支持PDF格式了。您可能更喜欢使用pypdf 它在源代码中有类似“#FIXME:complete”和“尚未实现”的注释 它似乎没有任何设置页面大小的方法-我记得这意
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:模块本身看起来非常简单——他正在编写大量原始postscript——但它应该能让你更好地了解幕后发生的事情。我建议使用开源库来完成这类任务 它使用非常简单,并直接输出为PDF格式 官方文件中的一个非常简单的示例:
from reportlab.pdfgen import canvas
def hello(c):
c.drawString(100,100,"Hello World")
c = canvas.Canvas("hello.pdf")
hello(c)
c.showPage()
c.save()
只要安装了PIL,将图像添加到页面也非常容易:
canvas.drawImage(self, image, x,y, width=None,height=None,mask=None)
其中“image”是PIL图像对象,或者是您希望使用的图像的文件名
文章中也有大量的例子