使用 python-pptx 创建一个新的 pptx,并设置尺寸

creating a new pptx with python-pptx, and setting dimensions

我有一系列图像,我想将它们始终嵌入到页面上相同位置的 powerpoint 文档中。

我可以导入图像,但我需要用户指定 powerpoint 尺寸。

我想我可以使用 slide_height 和 slide_width。我正在尝试这样的代码,以获得 300 毫米高的页面,但它不起作用:

pack = Presentation(pptx=None) pack.slide_height(300) pack.save('test.pptx')

它抛出 "TypeError: 'Emu' object is not callable" 错误。

我确信这很明显,但我看不出语法应该是什么,而且文档对我没有帮助。有人能更正我的代码吗?

非常感谢,

杰夫。

我想你要找的是这个:

from pptx import Presentation
from pptx.util import Mm

prs = Presentation()
prs.slide_height = Mm(300)
prs.save('test.pptx')

API documentation for Presentation.slide_height 中,您会注意到 slide_height 后面没有任何括号(例如,与它上面的 save() 相反)。这表明 slide_height属性 而不是方法,可以通过直接访问它或分配给它来使用,就像任何其他属性一样。

PowerPoint 的本机单位是英制单位 (EMU),即 1/914400 英寸。这些描述 in the documentation here。其中300确实是一个很短的长度,如果你直接将300分配给slide_height就会得到这样的长度。

为了让您跳过算术运算,有多种实用对象(如上面的 Mm())允许以常用单位(如厘米和英寸)指定 EMU。这些被描述为 in the documentation here.