为什么ReportLab不在我想要的位置绘制线条?

问题描述 投票:0回答:1

对不起,标题。我不太清楚问题出在哪里,所以我无法更准确地表达它。

我正在尝试使用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生成所固有的一些问题。] >

对不起,标题。我不太清楚问题出在哪里,所以我无法更准确地表达它。我正在尝试使用ReportLab中的Python复制现有表单(仅在纸上可用)。 ...

python pdf reportlab
1个回答
0
投票

如上所述,在页面A4或页面大小中绘制标尺,您可以在页面中看到这些坐标,然后可以根据绘制的坐标在页面中需要的地方绘制线

def drawMyRuler(c): c.drawString(100,810,'x100') c.drawString(200,810,'x200') c.drawString(300,810,'x300') c.drawString(400,810,'x400') c.drawString(500,810,'x500')
© www.soinside.com 2019 - 2024. All rights reserved.