【问题标题】:creating a new pptx with python-pptx, and setting dimensions使用 python-pptx 创建一个新的 pptx,并设置尺寸
【发布时间】:2018-07-15 17:59:32
【问题描述】:

我有一系列图像,我想将它们一致地嵌入到页面上相同位置的 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”错误。

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

非常感谢,

杰夫。

【问题讨论】:

标签: python-pptx


【解决方案1】:

我认为您正在寻找的是:

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

【讨论】:

  • 谢谢你 - 我正在从 perl 转移到 python 并且有时会在语法上绊倒。非常有用的一般案例答案,可以解释很多!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-16
相关资源
最近更新 更多