CBK*_*CBK 2 python python-pptx
我道歉,我一直在寻找解决方案,但找不到足够的文档来弄明白.我正在尝试导入学校所需的默认幻灯片布局,它有一个特殊的背景和一个标题栏和一个字幕块.我假设当我导入它时,python-pptx会自动为这两个文本块创建占位符0和1但是当我尝试编辑占位符时,我得到一个属性错误:
AttributeError: 'Presentation' object has no attribute 'placeholders'
Run Code Online (Sandbox Code Playgroud)
我的代码如下:
from pptx import Presentation
prs = Presentation('SeniorDesignTitleSlide.pptx')
Presentation_Title = prs.placeholders[0]
Presentation_Subtitle = prs.placeholders[1]
Presentation_Title.text = 'This Is a Test'
Presentation_Subtitle.text = 'Is This Working?'
prs.save('SlideLayoutImportTest.pptx')
Run Code Online (Sandbox Code Playgroud)
编辑[0]:我确实意识到我只是打开那个特定的演示文稿,但是如何访问和编辑其中的单个幻灯片?
编辑[1]:我在2015年发现了一些关于python-pptx扩展此功能的帖子,但没有进一步的信息,它实际上发生了.
python-pptx如何为导入的幻灯片布局分配占位符?或者甚至这样做?它需要是.potx文件吗?
先感谢您.
占位符属于幻灯片对象,而不是演示文稿对象.所以第一件事就是获得一张幻灯片.
从幻灯片布局创建幻灯片,它基本上克隆以获得一些起始形状,包括在许多情况下的占位符.
因此,第一步是确定您想要的幻灯片布局.最简单的方法是打开"开始"演示文稿(有时称为"模板"演示文稿),并使用视图>主控>幻灯片母版...菜单选项检查它的幻灯片母版和布局.
找到你想要的那个,从第一个布局开始倒计时,从0开始,这将为你提供该幻灯片布局的索引.
然后你的代码看起来像这样:
from pptx import Presentation
prs = Presentation('SeniorDesignTitleSlide.pptx')
slide_layout = prs.slide_layouts[0] # assuming you want the first one
slide = prs.slides.add_slide(slide_layout)
Presentation_Title = slide.placeholders[0]
Presentation_Subtitle = slide.placeholders[1]
Presentation_Title.text = 'This Is a Test'
Presentation_Subtitle.text = 'Is This Working?'
prs.save('SlideLayoutImportTest.pptx')
Run Code Online (Sandbox Code Playgroud)
该placeholders集合就像一个dict尽可能索引访问去,所以0和1用作上述指标不太可能在你的情况完全一致(虽然0可能会工作;标题始终为0).
本文档的这一页解释了如何发现模板可用的索引:http://python-pptx.readthedocs.io/en/latest/user/placeholders-using.html
在那之前的页面上有更多关于占位符的概念:http: //python-pptx.readthedocs.io/en/latest/user/placeholders-understanding.html
| 归档时间: |
|
| 查看次数: |
2359 次 |
| 最近记录: |