在页面上的特定位置打印文本

时间:2013-12-04 10:37:38

标签: python

我有一个Web应用程序(使用Web2py Python框架开发)。在这个网络应用程序中,我想打印一些课程的证书。

原则: 课程教师具有“默认”证书,名称占位符和证书名称。 (“祝贺 _ 您成功通过 __ 课程”) 他将证书放入他的打印机,我的应用程序在特定位置打印名称和证书,以填充占位符。

我查看了ReportLab和Pod。它们看起来很强大,可以构建复杂的报告,但我想知道它是否存在一个更简单的解决方案,只是为了在页面上的特定位置打印文本...

1 个答案:

答案 0 :(得分:2)

如果任务只是对新创建的PDF进行位置打印,那么我将使用PyFPDF

略微扩展他们的tutorial(为了简单起见,跳过错误处理等):

from fpdf import FPDF
import sys

x1, x2, y = [int(arg) for arg in sys.argv[1:4]]

pdf=FPDF()
pdf.add_page()
pdf.set_font('Arial', 'B', 16)
pdf.set_xy(x1, y)
pdf.cell(0, 10, 'name')
pdf.set_xy(x2, y)
pdf.cell(0, 10, 'course')

pdf.output('tuto_%d_%d_%d.pdf' % (x1, x2, y),'F')

它接受三个参数,x1和x2水平坐标,以毫米为单位表示名称和证书,y表示它们的公共垂直位置,如例子所示。

修改:如果您使用的是已经includes fpdf的web2py。使用templates可能是另一种方式(也可能更好)。

将HTML呈现为PDF也是一种可能,但正确的定位可能会更难。