我需要从python打印“车轮标签”。车轮标签将具有图像,线条和文字。在Python中打印图形
Python教程有两个关于使用图像库创建postscript文件的段落。读完之后,我仍然不知道如何布置数据。我希望有人可能有如何布置图像,文字和线条的样本?
感谢您的任何帮助。
我需要从python打印“车轮标签”。车轮标签将具有图像,线条和文字。在Python中打印图形
Python教程有两个关于使用图像库创建postscript文件的段落。读完之后,我仍然不知道如何布置数据。我希望有人可能有如何布置图像,文字和线条的样本?
感谢您的任何帮助。
见http://effbot.org/imagingbook/psdraw.htm
需要注意的是:
的PSDraw模块不会出现已自2005年以来一直积极维护;我猜想大部分的努力都被重定向到支持PDF格式。你可能会更高兴地使用pypdf来代替;
它像'#FIXME:不完整的意见和源“尚未实现”
它不会出现有设置页面大小的任何方法 - 这是我记得意味着它的默认值到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模块本身看起来非常小 - 他正在写很多原始的postscript - 但它应该让你更好地了解幕后发生的事情。
我会为这类任务推荐开源库Reportlab。
使用和直接输出到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)
其中“图像”是PIL图像对象,或者您想要使用的图像的文件名。
documentation也有很多例子。