演示文稿生成器
从JSON配置自动创建PowerPoint演示文稿
  
______________________________________________________________________
🎯 概述
演示文稿生成器 -它是一个模块化系统,用于从结构化JSON配置自动生成PowerPoint演示文稿。
主要任务
消除复制粘贴的手动工作:
- ✅ 标题和幻灯片编号
- ✅ Markdown文件中的演讲者笔记
- ✅ 自动缩放图像(WebP→PNG,GIF)
- ✅ 自动播放音频 (声音,音乐)
- ✅ 统一的企业风格
为了
- 教师 -快速构建教学演示文稿
- 内容创作者 -视频演示自动化
- Бизнес -生成报告和分析
- 开发者 -集成到CI/CD管道
______________________________________________________________________
📖 目录
______________________________________________________________________
🚀 快速入门
1.安装
pip install -r requirements.txt2.创建配置
config.json:
{
"template_path": "template.pptx",
"layout_name": "VideoLayout",
"output_path": "output.pptx",
"slides": [
{
"layout_type": "single_wide",
"title": "Слайд 1",
"notes_source": "notes.md",
"images": ["photo.jpg"]
}
]
}3.生成演示文稿
python main.py generate config.json准备好了!结果 output.pptx 🎉
______________________________________________________________________
📋 CLI命令
# Генерация презентации
python main.py generate slides.json
python main.py generate slides.json --output result.pptx
python main.py generate slides.json --verbose # DEBUG режим
# Анализ шаблона PPTX
python main.py analyze template.pptx
python main.py analyze template.pptx --layout "LayoutName"
python main.py analyze template.pptx --list
# Справка
python main.py help______________________________________________________________________
📊 记录
该系统包括调试和监控的复杂日志:
三流
- 控制台 -info(或debug)
--verbose)
- 用户净输出 - 在Windows中,emoji被替换为 ? (CP1251编码)
logs/app.log完整的Debug历史
- 所有细节:文件路径,大小,EMU坐标 - emoji保存正确(UTF-8) - 旋转:5MB×3个备份
logs/error.log只有错误错误+
- 快速分析的关键问题 - 旋转:5MB×3个备份
使用示例
# Обычный режим (INFO в консоли)
python main.py generate config.json
# DEBUG режим (детальный вывод)
python main.py generate config.json --verbose
# Просмотр логов (Linux/Mac)
cat logs/app.log | tail -100 # Последние 100 строк
grep "ERROR" logs/app.log # Только ошибки
# Просмотр логов (Windows PowerShell)
Get-Content logs\app.log -Encoding UTF8 -Tail 100
Select-String "ERROR" logs\app.log详情
- 完整文档:
doc/technical/logging.md - 线程描述:
logs/README.md - 格式:
[2025-11-20 14:00:01] INFO module:line - 🚀 Сообщение
______________________________________________________________________
🎨 布局(Layouts)
系统支持 6个内置布局 用于放置图像:
图片布局描述 |-------|-------------|----------| | single_wide 1.一个大图像(16:9) | single_tall 1.一幅高画幅(9:16) | two_stack 2、两张垂直的图片 | two_tall_row 2、有两张高画像。 | three_stack 三个垂直的图像。 | title_youtube ←YouTube标题幻灯片(正方形徽标+标题/字幕/系列编号)→
模型文件
每个模型都有详细的文档:
- 📄
doc/layouts/single_wide.md一个大图像(16:9) - 📄
doc/layouts/single_tall.md1个垂直图像(9:16) - 📄
doc/layouts/two_stack.md-两个垂直图像 - 📄
doc/layouts/two_tall_row.md-旁边有两个高图像 - 📄
doc/layouts/three_stack.md-三个垂直图像 - 📄
doc/layouts/title_youtube.mdYouTube标题幻灯片(新!)
使用布局的示例
所有布局都有工作示例 doc/samples/:
slides_config.json- 演示single_wide,single_tall,two_stack,two_tall_rowtest_three_stack.json-模型示例three_stackyoutube_title_example.json-例子title_youtubeYouTube视频audio_example.json-字幕+音频内容mixed_layouts_example.json-一个演示文稿中的多个布局
______________________________________________________________________
🧪 测试
项目使用 pytest 用于代码覆盖测试。
运行测试
# Все тесты
pytest tests/
# С подробным выводом
pytest tests/ -v
# С покрытием кода
pytest tests/ --cov=models --cov=core --cov=io_handlers --cov-report=term-missing测试结构
tests/
├── __init__.py
├── conftest.py # Фикстуры (временные файлы, моки)
├── test_models.py # Тесты моделей (SlideConfig, layouts)
├── test_io_handlers.py # Тесты загрузки файлов
├── test_bytesio_integration.py # Интеграционные тесты
└── test_data/ # Тестовые данные
├── task.md # Markdown заметки
├── test_slides_config.json # Конфигурация для интеграционных тестов
└── images/ # Тестовые изображения (cover.webp, test_gif.gif, test_audio.mp3)测试数据
tests/test_data/test_slides_config.json-集成测试的完整配置tests/test_data/task.md–Markdown笔记示例(自动格式化清理)tests/test_data/images/-测试文件(WebP、GIF和动画、MP3音频)
______________________________________________________________________
📚 文件
主要手册
- 📖
doc/overview.md-概述功能和快速启动 - 📋
doc/REFERENCE.md-完整指南(配置、布局、CLI) - 🔧
doc/TEMPLATE_GUIDE.md创建PowerPoint模板 - 🤖
doc/MCP_USAGE.md与 Model Context Protocol 集成
技术文档(开发人员)
- 🏗️
doc/technical/architecture.md复合架构v2.0 - 🖼️
doc/technical/image_processing.mdWebP转换,GIF,缩放 - 🎵
doc/technical/media_autoplay.md-通过OXML自动启动音频 - 📊
doc/technical/logging.md-日志系统
完整索引: doc/technical/README.md
MCP(模型上下文协议)
AI代理工具:
generate_presentation()-生成演示文稿(支持GIF动画!)get_layout_documentation()-获取模型文件analyze_template()PowerPoint模板分析
见E/CN.4/Sub.2/2000/SR.1。 doc/MCP_USAGE.md 举例来说。
______________________________________________________________________
🔧 开发
项目结构
presentation_mcp/
├── main.py # CLI точка входа
├── mcp_server.py # MCP сервер для AI-агентов
├── cli/ # CLI команды (generate, analyze)
├── config/ # Настройки и регистрация макетов
├── core/ # Бизнес-логика (builder, markdown_cleaner, image_processor)
├── io_handlers/ # Загрузка файлов (config, paths, resources)
├── models/ # Модели данных (SlideConfig, LayoutRegistry)
├── tests/ # Тесты (pytest) с тестовыми данными
├── doc/ # Документация
│ ├── layouts/ # Документация макетов (6 файлов .md)
│ └── samples/ # Примеры конфигураций (5 файлов .json)
├── logs/ # Логи (app.log, error.log)
└── templates/ # PowerPoint шаблоны建筑原则
- SRP(单一责任原则) 每个模块都有一个责任
- 依赖注入 整个配置通过JSON
- 清洁代码 说出名字,最少评论
- 功能核心 数据转换的纯功能
______________________________________________________________________
📦 依赖
基本(Production)
python-pptx==0.6.23 # Работа с PowerPoint
Pillow==10.4.0 # Обработка изображений (WEBP, GIF, JPEG, PNG)
pydantic==2.9.2 # Валидация конфигураций
fastmcp==0.5.2 # Model Context Protocol сервер开发(Dev)
pytest==8.3.4 # Тестирование
pytest-cov==6.0.0 # Покрытие кода安装
pip install -r requirements.txt______________________________________________________________________
🎓 项目历史
该项目旨在自动化视频演示的创建过程:
- v1.0 -从JSON生成幻灯片的基本CLI
- v2.0 添加了模板(
single_wide,two_stack,three_stack) - v3.0 人工智能代理MCP集成(Claude Desktop)
- v4.0 -音频支持(幻灯片配音)
- v4.1 -模型
title_youtubeYouTube视频 - v4.2 综合登录系统(Debug+Rotation)
______________________________________________________________________
🤝 参与项目
项目开放供投资!如何帮助:
- 报告错误 -创建一个描述问题的问题
- 提出模型 -将新的布局添加到
config/settings.py - 写测试 -代码覆盖可以改进
- 改进文档 -将示例添加到
doc/
______________________________________________________________________
📄 许可证
MIT许可证-在您的项目中免费使用。
______________________________________________________________________
💡 有用的链接
- 文档:
- 实例:
- doc/samples/ -工作配置 - tests/test_data/ -测试数据
- 布局:
- doc/layouts/ -所有6个模型的文档
______________________________________________________________________
🎯 路线图
✅ 版本2.0(当前)
- ✅ 构图架构(ImagePlacer,MediaPlacer)
- ✅ 通过OXML自动启动音频
- ✅ WebP自动转换
- ✅ GIF支持(包括动画)
- ✅ 技术文件(doc/technical/)
🔮 计划
- \[\]支持视频插入(MP4、MKV)
- \[\]从GPT/Claude自动生成笔记
- \[\]用于创建配置的Web界面
- \[\]导出为PDF
- \[X\]旋转日志(v4.2)✅
- \[X\]模型文档(v4.2)✅
- \[X\]布局
title_youtube(v4.1)✅
______________________________________________________________________
由以下材料制成❤️ 面向自动化爱好者
