使用 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.
我有一系列图像,我想将它们始终嵌入到页面上相同位置的 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.