Skip to main content

An innovative tool to weave your web content into editable PowerPoint presentations.

Project description

幻织 (PPTWeaver) ✨ - 我为连接 AI 与可编辑 PPT 所做的个人探索

你好!这是我的一个个人项目,它源于一个简单的问题:“我能让 AI 制作出真正可编辑的 PowerPoint 幻灯片吗?” 这就是那次实验的故事。

English | 中文


🤔 痛点:AI PPT 工具总感觉……差点意思

和许多人一样,我为 AI 生成内容的能力而着迷。但当我深入研究 AI PPT 生成器时,我发现它们大多属于以下几类,而且没有一类能完全满足我的需求:

  1. 模板填充型: 这类工具接收你的文本,然后将其填充到预定义的模板中。速度很快,但在创意上限制很大。你没法让它生成一个复杂的、定制化的图表,因为 AI 只是在“填空”。
  2. 图片导出型: 这类工具提供了更多的视觉自由度,但它们在“作弊”。它们将漂亮的幻灯片生成为静态图片或 PDF。这完全违背了 PowerPoint 的初衷——你什么都改不了!
  3. 封闭生态型: 像 Microsoft Copilot 这样强大的工具与 Office 深度集成,但它们通常是付费的、闭源的商业产品。对于一个喜欢自己动手探索的开发者来说,它们就像一个黑盒。

✨ 灵光一现:AI 是 HTML & SVG 的大师

当我意识到我问错了问题时,真正的突破到来了。我不该问“AI,帮我做个 PPT”,而应该问“AI,帮我为 PPT 生成视觉元素”。

事实证明,大语言模型在使用 HTML 和 SVG 生成复杂、精美且精确的视觉内容方面,能力惊人。这是它们能够原生理解的语言。突然之间,我找到了一种方法,可以创造出任何我能想象到的定制图表、图示或布局。

但这带来了新的挑战:你如何将这些完美的、基于 Web 的内容,转换成一个完全可编辑的 .pptx 文件呢?

🛠️ 我的解决方案:PPTWeaver 的工作流

这个项目就是我的答案。我不再将 AI 视为幻灯片设计师,而是将其视为一名前端开发人员。工作流程如下:

PPTWeaver 工作流图

  1. 以 HTML/SVG 为源: 我们从一个标准的 HTML 文件开始。每一个 <body> 标签都代表一张新的幻灯片。
  2. 使用无头浏览器渲染: PPTWeaver 在后台使用 Playwright,像浏览器一样精确地渲染 HTML。这一步以完美的保真度捕获所有的 CSS 样式和布局信息。
  3. 提取与翻译: 核心引擎会检查渲染好的页面,提取每一个 SVG 元素,并将其属性(位置、大小、颜色、文本)翻译成 python-pptx 库能理解的语言。
  4. 编织成 PPTX: 最后,它将每个元素重构为原生的、可编辑的 PowerPoint 形状,从而将 Web 内容“编织”成最终的 .pptx 文件。

🏛️ 软件架构

这是一个更详细的内部组件协作图:

PPTWeaver 软件架构图

🚀 来试试看!

安装:

# 安装主包
pip install pptweaver
# 安装 Playwright 依赖 (首次使用需要)
playwright install

快速使用:

import asyncio
from pptweaver import Converter

async def main():
    converter = Converter(input_file="your_slides.html", output_file="presentation.pptx")
    await converter.convert()

asyncio.run(main())

🚧 项目仍在施工中 & 未来计划

这个项目还远未完成!以下是路线图上的一个粗略想法:

  • 改进样式转换: 更好地支持 CSS 渐变、阴影和复杂的文本样式。
  • 动画与过渡: 为幻灯片过渡和简单的入场动画提供基础支持。
  • 交互式元素: 探索将 HTML 链接或按钮映射到 PowerPoint 交互式元素的方法。
  • 从 Prompt 直达 PPTX: 一个更高级的 API,与 LLM 集成,实现从文本提示直接生成最终的 PPTX 文件。
  • 更多处理器: 支持更多小众的 SVG 标签和 CSS 属性。

🤝 一起玩吧!

这是一个个人项目,但我非常希望它能成为一个社区项目。如果你有任何想法、发现了 bug,或者想添加新功能,请随时开启一个 Issue 或提交一个 Pull Request!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pptweaver-0.1.0.tar.gz (15.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pptweaver-0.1.0-py3-none-any.whl (17.1 kB view details)

Uploaded Python 3

File details

Details for the file pptweaver-0.1.0.tar.gz.

File metadata

  • Download URL: pptweaver-0.1.0.tar.gz
  • Upload date:
  • Size: 15.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for pptweaver-0.1.0.tar.gz
Algorithm Hash digest
SHA256 15239dbfc173cf26279cdd47f5a523cb81fc801b10677cd5d3f93834730da4e2
MD5 f2750036326a57a38844e44e6cac9dc9
BLAKE2b-256 5847159ef36b9de40c00e377e224314d5b2755cba18fdf0bb4e2e878d933ce9f

See more details on using hashes here.

File details

Details for the file pptweaver-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pptweaver-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 17.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for pptweaver-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fadfb9a8f0ea53685dd456275d7304819983dbe96984e5156d320592def08f57
MD5 b15d6e18f742866a7f4a2001e5b51b6f
BLAKE2b-256 503ecf39c96d44ce250a4e8365c1c4e27b060ae6041c5860e183c3ffd89b6039

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page