抱歉标题。我不太清楚问题是什么,所以我无法更准确地表达它。
我试图在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()
当我打印此文件(没有缩放)并测量它时,该行不是它应该的位置。它向右水平偏移约5毫米,垂直偏向顶部约3毫米。
为什么?画布/页面周围是否有一些未在手册中记录的边框?线条是否比其视觉表现更宽?
我知道我可以通过在代码中添加偏移来容纳此错误,但这是一项已经很乏味的任务,我想确保我不会错过ReportLab或PDF生成中固有的一些问题。
答案 0 :(得分: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')
c.drawString(10,100, 'y100')
c.drawString(10,200, 'y200')
c.drawString(10,300, 'y300')
c.drawString(10,400, 'y400')
c.drawString(10,500, 'y500')
c.drawString(10,600, 'y600')
c.drawString(10,700, 'y700')
c.drawString(10,800, 'y800')
def test():
c = canvas.Canvas('test.pdf', pagesize=landscape(A4))
h, w = A4
drawMyRuler(c)
#remaining code as per drawMyRuler coordinates...