资讯详情

资讯详情

AI可以生成无AI味的PPT?有这个东西确实可以

上一篇博客讲了 PPTX 文件本质是个 ZIP 压缩包AI 操纵 PPT 的底层逻辑跟操纵 Word 一样都是直接读写里面的 XML。但跟 Word 那边不一样的是PPT 的 XML 更复杂工具链也没 Word 完善。所以直接让 AI 从零生成一套 PPT大概率会遇到好几个问题排版乱、溢出、字体不对、调不动。所以如果从一开始就有排版等要求上来就用AI绝对不是个好注意。但如果你不知道如何下手去调整你不得不接受一个成品一眼AI味的。那本文就是教你避开上述路线。不让 AI 从零造而是让它往你自己的模板里填字。思路很简单。你先在 PowerPoint 里把常用的那几页模板做好字体、字号、配色、占位符位置全部预设好。然后 AI 要做的事情就只剩下一件把你准备好的文字按模板的布局一页一页填进去。这样做有几个好处第一模板是你自己做的排版、字体、配色都是你喜欢的样子。AI 不会乱改。第二AI 不用管格式只管内容。它不需要从零决定标题用什么字号、正文放在哪里这些模板里已经写死了。第三溢出问题容易解决。这其实是关键。在实际安排工作流的时候给完文字后一定要让AI帮你提前算好每一页能装多少字AI 填之前就知道什么时候该拆页不会等填完了才发现装不下。先搞清楚你的模板里有什么我自己常用的模板叫经典模板.pptx是一个非常简单的模板。总共就 6 页示例页覆盖了 5 种布局类型布局类型用途里面有什么标题幻灯片封面一个居中的主标题占位符 一个副标题占位符章节页章节分隔两个并排的文本框左窄右宽左框放编号 01、02右框放章节标题结束页致谢封底一个居中的文本框标题和内容正文页一个标题横条 一个大的内容区全黑另一种正文页上下两个文本框上标题下内容每种布局里的文本框专业术语叫占位符placeholder。你打开 PowerPoint 新建一页幻灯片的时候看到的那些虚线框就是占位符。每个占位符有几个关键属性位置和尺寸用 EMU 单位记录1/914400 英寸python-pptx 读出来是整数占位符类型ph_type用数字区分TITLE标题横条是 1BODY正文/居中框是 2CENTER_TITLE封面主标题是 3SUBTITLE封面副标题是 4OBJECT正文页内容区是 7默认字体和字号如果母版里预设了占位符自动继承如果没预设python-pptx 不显式指定的话也是继承为什么要搞清楚占位符的类型和位置因为 AI 填字的时候就是靠这些信息来判断这一块是封面主标题“这一块是章节页右框”这一块是正文页内容区的。我之前跑过一个探查脚本inspect_template.py把经典模板.pptx 里每种布局的占位符全部枚举出来了。结果长这样 经典模板.pptx 布局探查 布局标题幻灯片封面 ph_type3CENTER_TITLE宽 10 高 2.6位于 (0, 0) → 主标题 ph_type4SUBTITLE宽 10 高 1.3位于 (0, 2.8) → 副标题 布局章节页 BODY 左框宽 1.9 高 1.1位于 (0.5, 3.2) → 编号 01、02 BODY 右框宽 6.2 高 1.0位于 (3.2, 3.2) → 章节标题 注意章节页的两个框都是 BODY 类型得靠宽度区分 布局标题和内容正文页 ph_type1TITLE宽 11.5 高 0.8位于 (0, 0) → 标题横条 ph_type7OBJECT宽 11.5 高 4.8位于 (0, 1.0) → 内容区这段探查结果非常有用。它告诉我每个占位符在屏幕上的精确位置和尺寸这意味着我可以提前算好每个框能装多少字不用等 AI 填完才发现溢出。怎么算一页能装多少字这个公式是我自己摸出来的不算精确但足够用一行字数 ≈ 占位符宽度(英寸) × 72 / 字号(pt) 总容量 ≈ 一行字数 × 最大行数这里 72 是 1 英寸等于多少 pt点是排版里的基本换算单位。比如经典模板的正文页内容区宽度 11.5正文字号我定的是 24pt一行字数 ≈ 11.5 × 72 / 24 34.5 ≈ 29 字保守一点 总容量 ≈ 29 字/行 × 8 行 232 字为什么是 8 行因为内容区高度 4.824pt 字号行高约 30pt行高系数 1.25换算一下就是约 8 行。算出来之后AI 填字之前就有了硬约束每页正文不超 232 字、不超 8 行。给它的素材如果超过了提前拆成两页。我把所有位置的容量都算了一遍汇总成一张表位置字号一行字数总容量封面主标题48pt22 字4 行 88 字封面副标题32pt29 字2 行 58 字章节页编号48pt4 字纯数字 01-99 没问题章节页标题48pt14 字≤ 4 字完全够正文页标题横条40pt25 字1 行正文页内容区24pt29 字8 行 232 字PPT 里的表格14pt—约 12 行有了这张表AI 填字就像带着标尺干活。字体字号谁来管模板里的占位符默认是继承母版的字体和字号。我实操的时候索性放弃了继承所有字号手动指定。为什么不靠母版因为 python-pptx 的高级 API 只看得到当前文本框上显式写的字体属性母版预设值得扒底层 XML 才能拿到。扒 XML 太麻烦而且就算拿到了也不确定母版里写的是什么字体。所以我直接在代码里硬写死封面主标题48pt黑体封面副标题32pt黑体章节页左框编号48pt黑体加粗章节页右框章节标题48pt黑体加粗正文页标题横条40pt黑体正文页内容24pt黑体行距 1.25段前段后各 6ptPPT 里的表格14pt宋体这样做的好处是字体字号完全可控不管模板的母版里预设了啥python-pptx 都按我指定的值写进去。坏处是模板不能随便换换了新模板得重新探查、重新算容量。但我平时就用一个模板所以没问题。所以如果按照上述流程操作你会发现你的AI能够迅速的帮你在ppt里面填完字而不会出现排版乱、溢出、字体不对、调不动的问题。而且当你拿给别人看别人也看不出来任何AI的痕迹。总结请预制一个ppt模板。然后把模版告诉给AI。接着让AI使用python-pptx为你填写字。最后你将得到一个无AI痕迹的ppt。
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →