用途:使用预装的 python-pptx 读取、创建和编辑 PowerPoint .pptx 演示文稿。.pptx 本质是 XML 部件的 ZIP 包,python-pptx 负责结构,仅在库无法表达时才操作原始 OOXML。
主要能力:读取幻灯片数量与尺寸(EMU),遍历形状提取文本、表格单元格和演讲者备注;按大纲新建幻灯片,通过版式占位符设置标题与项目符号(用 paragraph.level 控制层级,不手写 •);添加文本框、图片、表格和图表;在 run 级别替换文本以保留格式;通过替换图片部件的字节实现原位换图;删除多余形状或占位符。
使用方式:在文件所在工作目录用 code_execution 运行完整 Python 源码,按生成产物列表中的名称引用文件;仅真正需要 shell 时用 exec,不要把源码放进 python -c 或 heredoc。常用导入为 from pptx import Presentation 与 from pptx.util import Inches, Pt, Emu。创建时先列出 prs.slide_layouts 确认索引(默认模板 0=标题、1=标题+内容、5=仅标题、6=空白)。
导出与校验:若存在 LibreOffice,可用 soffice --headless --convert-to pdf out.pptx 转 PDF,再用 pdftoppm -jpeg -r 150 out.pdf slide 生成图片进行视觉检查;每次编辑后需重新转换。缺少 soffice 或 pdftoppm 时说明并跳过,不要 pip 安装。旧版 .ppt 为二进制格式,python-pptx 无法打开,需先用 soffice 转换。
限制:python-pptx 无直接图片替换接口,需操作 blip 的 r:embed 与部件 blob;高级场景(精确复制幻灯片、渐变填充、主题色编辑、无类型 XML)才用原始 OOXML,手工增删部件须维护 [Content_Types].xml、_rels 关系、唯一 ID 与 xml:space="preserve",否则文件会损坏。完成后应重新打开输出并断言幻灯片数与关键文本。设计建议与具体模板、收费等信息资料未提供。