【发布时间】:2018-10-07 13:47:46
【问题描述】:
我正在尝试创建一个带有将要旋转的图像的 PDF 文档。 我可以成功地创建 PDF 文档、添加图像并保存它,但是当我尝试旋转它时,我遇到了很多问题。
我想了解的一件事是旋转的轴在哪里,是在 0,0(PDF 的左下角)还是其他地方?
这是我当前运行的代码:
output = BytesIO()
# create a new PDF with Reportlab
c = canvas.Canvas(output)
c.saveState()
c.translate(X?, Y?) # TODO find this !
c.rotate(45)
c.drawImage('path/to/image.png', position_left, position_top, width=img_width, height=img_height, mask='auto')
c.restoreState()
c.save()
(由于 PDF 文档 (0,0) 点位于右下角,我有 position_left 和 position_top 指的是文档的左上角,我想在其中放置图像)。
我的问题是我不知道如何在c.translate(X?, Y?) 上设置什么值以使图像在其中心轴上旋转,即保持在文档上的相同位置,但从其中心点自行旋转.
使用c.translate(X?, Y?) 是否可行,或者我是否需要使用高级机制来“仅”旋转 PDF 文档上的图像?如果是这样,您能指出我正确的方向吗?
感谢您的帮助。
【问题讨论】:
-
"PDF 文档 (0,0) 点位于右下角" - 确定吗?一般来说,它是任意的,但很常见的是底部 left。
-
确实,你是对的,它在左下角,我的错!我会解决这个问题!
-
所以你想在
x,y放置一个中心为x+w/2, y+h/2的图像,然后将其旋转几度?这个假设是否正确。还看看这是否有帮助stackoverflow.com/questions/29848988/… -
@TarunLalwani 这帮助我找到了解决方案!谢谢!!
-
我应该将其发布为答案还是您使用了任何修改?
标签: image pdf rotation pdf-generation reportlab