pptx-beautiful — 中文商务 PPT 生成(python-pptx)
当需要从零做出"排版美观、配色统一"的中文 PPT,且当前环境没有可生成 PPT 的专用技能时,用本技能。
核心思路:用 python-pptx 以代码方式搭建一套设计系统(配色 + 组件函数),而不是堆砌文本框。
适用场景
- B2B 解决方案 / 路演 / 述职 / 行业研究汇报
- 要求"优美、排版美观自然",但需要可批量、可复刻
- 环境无 LibreOffice / 无专用 PPT 技能时
运行环境(务必用 managed runtime,隔离安装)
# 1) 建 venv(managed python 22/3.13)
C:\Users\信春雷\.workbuddy\binaries\python\versions\3.13.12\python.exe -m venv C:\Users\信春雷\.workbuddy\binaries\python\envs\default
C:\Users\信春雷\.workbuddy\binaries\python\envs\default\Scripts\pip install python-pptx
# 2) 运行脚本
C:\Users\信春雷\.workbuddy\binaries\python\envs\default\Scripts\python.exe build_ppt.py
设计系统(新中式·暖金,已验证耐看)
- 主色 深红
RGBColor(0xA6,0x1C,0x22);暗红0x7E,0x14,0x18 - 暖金
RGBColor(0xC9,0x8A,0x2B);浅金0xE3,0xC2,0x6E - 米底
RGBColor(0xFB,0xF7,0xF0);卡片0xFF,0xFD,0xF9;描边0xE2,0xD6,0xC4 - 墨字
RGBColor(0x2B,0x24,0x1E);灰字0x6E,0x66,0x5C;白0xFF,0xFF,0xFF - 字体统一
'微软雅黑'(Windows 自带,PowerPoint 渲染稳定) - 画布 16:9:
slide_width=Inches(13.333),slide_height=Inches(7.5)
必备组件函数(全部封装在脚本里)
blank()空白页;rect(...)画形状(支持 ROUNDED_RECTANGLE / OVAL / RIGHT_ARROW),务必sp.shadow.inherit=False去默认阴影text(slide,x,y,w,h,paragraphs,...):paragraphs 为[{'runs':[{'t':..,'s':..,'c':..,'b':..}],'align':..,'space_after':..}],支持多段多风格header(slide, idx, title, sub):左侧红圆角编号徽章 + 红色标题 + 金色分隔线 + 右上品牌标;idx=None时不画徽章footer(slide, n, total):左下品牌 + 右下页码card(...)圆角卡片;accent_bar(...)卡片左侧竖色条- 封面 / 封底:整页深红 + 金色装饰圆 + 金色短横线
- 四步流程图:
card×4 + 中间RIGHT_ARROW金箭头 - 环形图:
CategoryChartData+XL_CHART_TYPE.DOUGHNUT,自定义每点 fill 与 data_labels
关键坑
- 圆角矩形做"顶部分色条"时,圆角会让底部也圆,需在分色条下方叠一个直角
rect补齐(见 build 脚本里rect(x, top+0.4, w, 0.3, col)的写法)。 - 中文必须设
r.font.name='微软雅黑';文本框word_wrap=True。 - 环形图中心文字用独立 textbox 覆盖在圆心;points 上色用
plot.series[0].points[i].format.fill.solid()。 - 保存路径用绝对路径;输出后务必重新
Presentation(path)打开校验 slides 数与 shape 数。 - 无 LibreOffice 时无法出图预览,依赖代码自检 + 结构校验。
完整可运行模板
见同目录 references/template.py(一套完整 10 页解决方案 PPT 范例,含上述所有组件,改文案即可复用)。
工作流
- 确认环境(managed venv + python-pptx)。
- 与客户对齐内容结构(封面/目录/各章节/封底)。
- 复制
references/template.py,替换为本次文案,调色(不改函数)。 - 运行生成
.pptx,重新打开校验。 present_files交付。