如何用空图像替换完整图像占位符?

How can I replace a full image placeholder by an empty one?

我想以编程方式删除已满的图像占位符(python-pptx API 中的 PlaceholderPicture 个对象) 并将它们替换为空的 (PicturePlaceholder),目标是“刷新”图片而不是总是必须填写空的演示文稿。

我想我知道如何删除形状,但事实证明创建新的 PicturePlaceholder 比预期的要难。

当我尝试创建一个时,我被要求提供一个 sp 和一个 parent,但我在文档中找不到这些参数所指的内容。

我的方法是否有意义,如果是的话,是否可以通过编程方式创建新的占位符?谁能解释一下我应该传递给构造函数的参数是什么?

提前致谢。

python-pptx 没有 API 对此的支持,这意味着您需要直接操作幻灯片的底层 XML 来完成它(并且在 python-pptx "安全网").

sp 是形状元素(通常是一个 <p:sp> 元素,因此得名),parent 是对幻灯片的引用。

作为一般方法,我会创建一个空占位符并将其 XML 与在各个方面都相同的“已填充”占位符进行比较。那么工作就是把一个变成另一个。

请注意,图片占位符与存储在 PPTX 包(.pptx 文件)中其他地方的“图像部分”(例如 PNG 文件)有关系。这将需要处理而不是悬而未决。

另一种可能性是只交换图像并保留其他所有内容,这至少在纸面上不会造成破坏。

因为这些选项中的 none 得到了 API 的支持,追求它们需要对 python-pptx 为您处理的许多细节负责,并学习相当多的关于内部结构。如果这听起来像是您宁愿避免的事情,那么您将想要找到另一种方法来实现您想要的更广泛的结果。