【发布时间】:2018-11-07 16:08:16
【问题描述】:
c = canvas.Canvas('data.pdf', pagesize= [width*inch,height*inch])
c.drawImage('dataptah',x,y, width,height)
c.save()
我无法将图片高度居中, 所以我需要知道 x 和 y 单位, 或者放点东西。
【问题讨论】:
标签: python-3.x reportlab drawimage
c = canvas.Canvas('data.pdf', pagesize= [width*inch,height*inch])
c.drawImage('dataptah',x,y, width,height)
c.save()
我无法将图片高度居中, 所以我需要知道 x 和 y 单位, 或者放点东西。
【问题讨论】:
标签: python-3.x reportlab drawimage
首先,您可以在 drawImage 调用中为 x、y、宽度和高度值使用单位,就像对 pagesize 所做的一样。因此,如果您知道图像的纵横比,就可以计算出准确居中位置的这些值。
reference documentation 提到了另外两个参数,这可能会有所帮助:
preserveAspectRation=True 保持图像的纵横比,即使用 x、y、width、height 指定的框具有不同的纵横比。anchor='c' 指定图像的锚点位置,在本例中为中心。因此,如果您添加这两个参数并将框在页面上居中,那么您的图像也应该居中。这是一个例子:
c.drawImage('dataptah',
width/4*inch, height/4*inch,
width/2*inch, height/2*inch,
preserveAspectRatio=True, anchor='c'
)
【讨论】: