python-pptx解析pptx模板

from pptx import Presentation

from pptx.slide import Slide

from pptx.slide import NotesSlide

from pptx.text.text import TextFrame

from pptx.shapes.shapetree import SlideShapes

from pptx.shapes.placeholder import SlidePlaceholder

import json

path = "C:/luo/tmp/tmpl/009999.pptx"

prs = Presentation(path)

def res(obj) -> Slide:

return obj

def res2(obj) -> NotesSlide:

return obj

def res3(obj) -> SlideShapes:

return obj

def res4(obj) -> TextFrame:

return obj

def res5(obj) -> SlidePlaceholder:

return obj

page_ids = {i + 1: slide.slide_id for i, slide in enumerate(prs.slides)}

print(page_ids)

for page in page_ids:

slide = prs.slides.get(page_ids[page])

slide = res(slide)

shapes = res3(slide.shapes)

for shape in shapes:

shape_text = ""

if shape.has_text_frame:

shape_text = shape.text

shape.text = ''

print("page: " + str(page) + ", idx: " + str(shape.placeholder_format.idx) + "," + str(shape_text))

获取 note

if slide.has_notes_slide and len(str(slide.notes_slide.notes_text_frame.text).strip()) > 0:

notes_slide = res2(slide.notes_slide)

tf = res4(notes_slide.notes_text_frame)

note_json = json.loads(tf.text)

for jn in note_json:

print(jn['name'])

tf.text = '' # 用于 prs.save(path) 做清除 note

output = "C:/luo/tmp/tmpl/009999-gen-report.pptx"

prs.save(output)

相关推荐
山烛21 分钟前
逻辑回归详解:从数学原理到实际应用
python·算法·机器学习·逻辑回归
June bug1 小时前
将本地项目关联并推送到已有的 GitHub 仓库
python·github
阿加犀智能1 小时前
高通手机跑AI系列之——实时头发识别
python·ai编程
北京_宏哥1 小时前
🔥Python零基础从入门到精通详细教程10 - python数据类型之数字(Number)-整型(int)详解
前端·python·面试
斜月2 小时前
Jupyter Notebook 与 Pandas 绘图实践
人工智能·python
cliffordl2 小时前
wxPython 实践(五)高级控件
python
__風__2 小时前
从本地 Docker 部署的 Dify 中导出知识库内容(1.6版本亲测有效)
人工智能·python·mysql·语言模型
fsnine2 小时前
网络爬虫(python)入门
开发语言·爬虫·python
WilliamHu.2 小时前
金融分类提示词演示
开发语言·python·大模型·prompt
Shun_Tianyou3 小时前
Python Day17 面向对象 及例题分析
开发语言·数据结构·python·算法