python3 reportlab drawImage 居中高

python3 reportlab drawImage High to center

c = canvas.Canvas('data.pdf', pagesize= [width*inch,height*inch])
c.drawImage('dataptah',x,y, width,height)
c.save()

我无法将图片高度居中, 所以我需要知道 x 和 y 单位, 或者放点东西。

首先,您可以在 drawImage 调用中为 x、y、宽度和高度值使用单位,就像您对 pagesize 所做的那样。因此,如果您知道图像的宽高比,则可以计算这些值以获得准确的居中位置。

reference documentation 提到了另外两个可能有用的参数:

  • preserveAspectRation=True 保持图像的纵横比,即使用 x、y、宽度、高度指定的框具有不同的纵横比。
  • anchor='c' 指定图像的锚点位置,在本例中为中心。

因此,如果您添加这两个参数并将框在页面上居中,那么您的图像也应该居中显示。这是一个例子:

c.drawImage('dataptah', 
     width/4*inch, height/4*inch,
     width/2*inch, height/2*inch,
     preserveAspectRatio=True, anchor='c'
)