Python pptx 图片占位符旋转使图片在 PowerPoint 中消失(而不是在 LibreOffice 中)



我想在图片占位符中插入图片。以前,如果需要,我会获得 EXIF 信息以进行旋转。这是我的代码:

placeholder = slide.placeholder[N]
photo.open()
ph_picture = placeholder.insert_picture(photo)
if exif['Orientation'] == LANDSCAPE_ORIENTATION:
ph_picture.rotation = 90.0

当我在LibreOffice中打开pptx生成的文件时,图像看起来很棒。但是在PowerPoint中,它们消失了。删除旋转图像的线条会使图像再次出现。

任何线索正在发生的事情或旋转图像的更好方法是什么? (我也尝试过PIL,但结果更糟(。

通常,在这种情况下,前进的方法是使用 PowerPoint(手动(创建一张看起来像您想要的幻灯片,然后检查它创建的 XML 以查看它如何处理该功能。

不幸的是,PowerPoint和OpenOffice都不完全符合规范,并且在较少使用的功能中表现出意想不到的行为,尤其是在边缘。因此,即使我希望您会发现python-pptx在这种情况下正在生成预期的XML,但由于某种原因,PowerPoint并没有按照规范的规定对其进行解释。

但是,如果可以让 PowerPoint 旋转图像而不使其消失,则很有可能对 XML 执行与它相同的操作将产生您想要的结果。这就是我要开始的地方。

不过,这是一个图片占位符有点可疑,我会首先尝试使用正常的图片形状,看看它是否有同样的问题。无论哪种方式,这都可能缩小范围。

最新更新