【发布时间】:2015-10-31 18:55:19
【问题描述】:
抱歉标题。我不太清楚问题是什么,所以我无法更准确地表达。
我正在尝试在 ReportLab 中使用 Python 复制现有表单(仅在纸上可用)。
我测量现有表格并使用 ReportLab 绘制的值。这是一个例子:
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4, landscape
from reportlab.lib.units import mm
def test():
c = canvas.Canvas('test.pdf', pagesize=landscape(A4))
h, w = A4
c.line(21*mm, 37*mm, 278*mm, 37*mm)
c.showPage()
c.save()
当我打印这个文件(没有缩放)并测量它时,这条线不在它应该在的位置。水平向右偏移约 5mm,垂直向上偏移约 3mm。
这是为什么呢?画布/页面周围是否有手册中未记录的边框?线条是否比其视觉表现更宽?
我知道我可以通过简单地在我的代码中添加偏移量来适应这个错误,但这已经是一项繁琐的任务,我想确保我不会遗漏 ReportLab 或 PDF 生成所固有的一些问题。
【问题讨论】:
-
您的打印机精度如何?我会先看一下 PDF 里面的东西,看看里面的东西是否都在它的位置上。 Acrobat Pro 具有必要的测量工具。
-
您是否将文件打印到 A4 纸上?如果是这样,你从纸的哪个角落测量?横向放置时,它应该位于页面的左下角(水平线靠近左下角)。