powerpoint-toolkit
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChinesePowerPoint Toolkit
PowerPoint 工具包
Setup (First Use)
首次使用设置
bash
python3 scripts/setup_deps.pyInstalls: python-pptx, Pillow, pyyaml. Skip if already installed.
bash
python3 scripts/setup_deps.py安装依赖:python-pptx、Pillow、pyyaml。若已安装可跳过此步骤。
Workflow Decision Tree
工作流决策树
- Inspect structure → Run
scripts/inspect_pptx.py - Extract text → Run
scripts/extract_text.py - Analyze & get improvement suggestions → Run
scripts/analyze_pptx.py - Generate visual thumbnails → Run
scripts/thumbnails.py - Create new presentation → Use python-pptx (see )
references/design-and-creation.md - Edit existing presentation → Use python-pptx or OOXML (see )
references/ooxml-editing.md
- 检查结构 → 运行
scripts/inspect_pptx.py - 提取文本 → 运行
scripts/extract_text.py - 分析并获取优化建议 → 运行
scripts/analyze_pptx.py - 生成可视化缩略图 → 运行
scripts/thumbnails.py - 创建新演示文稿 → 使用 python-pptx(详见 )
references/design-and-creation.md - 编辑现有演示文稿 → 使用 python-pptx 或 OOXML(详见 )
references/ooxml-editing.md
Quick-Start Scripts
快速启动脚本
Inspect File Structure
检查文件结构
bash
python3 scripts/inspect_pptx.py deck.pptx # Overview
python3 scripts/inspect_pptx.py deck.pptx --text # With all text
python3 scripts/inspect_pptx.py deck.pptx --notes # With speaker notes
python3 scripts/inspect_pptx.py deck.pptx --layouts # With layout details
python3 scripts/inspect_pptx.py deck.pptx --slide 0 # Single slide
python3 scripts/inspect_pptx.py deck.pptx --text --notes # Full contentReturns JSON: slide count, dimensions, shapes, text, images, charts, tables, notes.
bash
python3 scripts/inspect_pptx.py deck.pptx # 概览
python3 scripts/inspect_pptx.py deck.pptx --text # 包含所有文本
python3 scripts/inspect_pptx.py deck.pptx --notes # 包含演讲备注
python3 scripts/inspect_pptx.py deck.pptx --layouts # 包含布局详情
python3 scripts/inspect_pptx.py deck.pptx --slide 0 # 单张幻灯片
python3 scripts/inspect_pptx.py deck.pptx --text --notes # 完整内容返回JSON格式数据:幻灯片数量、尺寸、形状、文本、图片、图表、表格、备注。
Extract Text
提取文本
bash
python3 scripts/extract_text.py deck.pptx # Markdown format
python3 scripts/extract_text.py deck.pptx --format json # Structured JSON
python3 scripts/extract_text.py deck.pptx --format text # Plain text
python3 scripts/extract_text.py deck.pptx --notes # Include speaker notesbash
python3 scripts/extract_text.py deck.pptx # Markdown格式
python3 scripts/extract_text.py deck.pptx --format json # 结构化JSON
python3 scripts/extract_text.py deck.pptx --format text # 纯文本
python3 scripts/extract_text.py deck.pptx --notes # 包含演讲备注Analyze & Improve
分析与优化
bash
python3 scripts/analyze_pptx.py deck.pptx # Full analysis
python3 scripts/analyze_pptx.py deck.pptx --verbose # Extra detailReturns JSON with stats (fonts, sizes, layouts, text density) and issues (readability, consistency, missing notes, visual balance).
bash
python3 scripts/analyze_pptx.py deck.pptx # 完整分析
python3 scripts/analyze_pptx.py deck.pptx --verbose # 详细分析返回JSON格式数据,包含统计信息(字体、字号、布局、文本密度)和问题点(可读性、一致性、缺失备注、视觉平衡)。
Generate Thumbnails
生成缩略图
bash
python3 scripts/thumbnails.py deck.pptx # Default 4-col grid
python3 scripts/thumbnails.py deck.pptx preview --cols 3 # Custom layoutRequires LibreOffice + poppler (pdftoppm). Creates a JPEG grid for visual review.
bash
python3 scripts/thumbnails.py deck.pptx # 默认4列网格
python3 scripts/thumbnails.py deck.pptx preview --cols 3 # 自定义布局需要依赖LibreOffice + poppler(pdftoppm)。生成JPEG格式的网格图用于视觉审阅。
Creating Presentations
创建演示文稿
Design Principles
设计原则
Before writing code, always:
- Analyze content — What topic, tone, audience?
- Choose palette — See for 10 curated palettes
references/design-and-creation.md - Plan layout — Decide slide types: title, content, section, closing
- State approach — Explain design choices before implementation
编写代码前,请务必遵循以下步骤:
- 分析内容 — 主题、风格、受众分别是什么?
- 选择配色方案 — 详见 中的10种精选配色
references/design-and-creation.md - 规划布局 — 确定幻灯片类型:标题页、内容页、章节分隔页、结尾页
- 说明设计思路 — 在实现前解释设计选择
Key Rules
关键规则
- Use web-safe fonts only: Arial, Verdana, Georgia, Tahoma, Trebuchet MS, Times New Roman, Courier New
- Create clear visual hierarchy through size, weight, and color
- Keep text concise — aim for ≤6 bullet points, ≤6 words per bullet
- Ensure strong contrast between text and backgrounds
- Use consistent spacing and alignment across all slides
- Add speaker notes for presentation delivery
- 仅使用网页安全字体:Arial、Verdana、Georgia、Tahoma、Trebuchet MS、Times New Roman、Courier New
- 通过字号、字重和颜色构建清晰的视觉层次
- 保持文本简洁 — 目标为≤6个项目符号,每个项目符号≤6个单词
- 确保文本与背景之间对比度足够
- 所有幻灯片使用一致的间距和对齐方式
- 添加演讲备注以辅助演示
Quick Creation Template
快速创建模板
python
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.dml.color import RGBColor
prs = Presentation()
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)python
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.dml.color import RGBColor
prs = Presentation()
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)Title slide
标题幻灯片
slide = prs.slides.add_slide(prs.slide_layouts[0])
slide.shapes.title.text = "Title"
slide.placeholders[1].text = "Subtitle"
slide = prs.slides.add_slide(prs.slide_layouts[0])
slide.shapes.title.text = "Title"
slide.placeholders[1].text = "Subtitle"
Content slide
内容幻灯片
slide = prs.slides.add_slide(prs.slide_layouts[1])
slide.shapes.title.text = "Section"
body = slide.placeholders[1].text_frame
body.text = "First point"
p = body.add_paragraph()
p.text = "Second point"
p.level = 0
prs.save("output.pptx")
For full creation reference (shapes, formatting, charts, tables, images, notes) → see `references/design-and-creation.md`.slide = prs.slides.add_slide(prs.slide_layouts[1])
slide.shapes.title.text = "Section"
body = slide.placeholders[1].text_frame
body.text = "First point"
p = body.add_paragraph()
p.text = "Second point"
p.level = 0
prs.save("output.pptx")
完整创建参考(形状、格式、图表、表格、图片、备注)→ 详见 `references/design-and-creation.md`。Editing Presentations
编辑演示文稿
Simple Edits (python-pptx)
简单编辑(python-pptx)
python
from pptx import Presentation
prs = Presentation("existing.pptx")
slide = prs.slides[0]
for shape in slide.shapes:
if shape.has_text_frame:
for para in shape.text_frame.paragraphs:
for run in para.runs:
run.text = run.text.replace("old", "new")
prs.save("modified.pptx")python
from pptx import Presentation
prs = Presentation("existing.pptx")
slide = prs.slides[0]
for shape in slide.shapes:
if shape.has_text_frame:
for para in shape.text_frame.paragraphs:
for run in para.runs:
run.text = run.text.replace("old", "new")
prs.save("modified.pptx")Advanced Edits (OOXML)
高级编辑(OOXML)
For operations beyond python-pptx (animations, complex formatting, raw XML manipulation) → see .
references/ooxml-editing.md对于python-pptx无法实现的操作(动画、复杂格式、原始XML操作)→ 详见 。
references/ooxml-editing.mdProviding Improvement Feedback
提供优化反馈
When asked to review or improve a presentation:
- Run
scripts/inspect_pptx.py deck.pptx --text --notes - Run
scripts/analyze_pptx.py deck.pptx - Optionally generate thumbnails for visual review
- Present findings in this order:
- Overview: slide count, layout types, visual balance
- Content Issues: text density, empty slides, missing titles
- Design Issues: font consistency, size readability, color contrast
- Structure Issues: flow, pacing, section organization
- Suggestions: specific actionable improvements with slide references
当需要审阅或优化演示文稿时:
- 运行
scripts/inspect_pptx.py deck.pptx --text --notes - 运行
scripts/analyze_pptx.py deck.pptx - 可选:生成缩略图用于视觉审阅
- 按以下顺序呈现结果:
- 概览:幻灯片数量、布局类型、视觉平衡
- 内容问题:文本密度、空白幻灯片、缺失标题
- 设计问题:字体一致性、字号可读性、颜色对比度
- 结构问题:流程、节奏、章节组织
- 建议:带有幻灯片参考的具体可操作改进方案
Common Slide Patterns
常见幻灯片模板
| Pattern | Layout | When to Use |
|---|---|---|
| Title Slide | Layout 0 | Opening, section dividers |
| Bullets | Layout 1 | Key points, agenda |
| Two-Column | Layout 3 | Comparison, before/after |
| Image + Text | Layout 5 + textbox | Visual storytelling |
| Chart Slide | Layout 5 + chart | Data presentation |
| Table Slide | Layout 5 + table | Structured data |
| Quote Slide | Layout 6 + textbox | Attribution, emphasis |
| Closing | Layout 0 or 6 | Thank you, contact info |
| 模板类型 | 布局 | 使用场景 |
|---|---|---|
| 标题幻灯片 | 布局0 | 开场、章节分隔 |
| 项目符号 | 布局1 | 要点展示、议程 |
| 双栏布局 | 布局3 | 对比展示、前后对比 |
| 图片+文本 | 布局5 + 文本框 | 视觉叙事 |
| 图表幻灯片 | 布局5 + 图表 | 数据展示 |
| 表格幻灯片 | 布局5 + 表格 | 结构化数据展示 |
| 引用幻灯片 | 布局6 + 文本框 | 引用、强调 |
| 结尾幻灯片 | 布局0或6 | 致谢、联系方式 |