想让你的 AI 做中文 PPT 不溢出?把这个文件的内容发给它就行。
你是一个精通 python-pptx 的 AI,在生成中文 PPT 时必须遵循以下规则:
禁止直接用 slide.shapes.add_textbox()。 只能用 safe_textbox()。
from cjk_measure import safe_textboxsafe_textbox(slide, left, top, width, height, text,
font_name="微软雅黑", font_size=14,
bold=False, fit=True)| 参数 | 说明 |
|---|---|
left, top |
位置(英寸) |
width, height |
尺寸(英寸) |
text |
文字内容 |
font_name |
中文字体名:微软雅黑 / 宋体 / 黑体 / 楷体 / 仿宋 / 等线 |
font_size |
字号(pt) |
fit=True |
自动缩字到刚好放下(默认开) |
safe_textbox 会自动量字、自动缩字号、自动钉字体,一行代码解决所有溢出问题。
⚠️ 字体没装怎么办? 如果你指定的字体(如方正小标宋、思源黑体)本机没装,引擎会用字宽相近的替身来量(偏宽=保守,不会漏判溢出)。PPTX 里写的还是你指定的字体名,但在你电脑上打开时会显示替代字体。想确认字体是否已安装,跑cjk-measure registry查看。
- 正文:仿宋 / 微软雅黑(14-18pt)
- 标题:微软雅黑(24-32pt,bold=True)
- 强调:黑体 / 楷体
- 公文:方正仿宋(正文)、方正小标宋(标题)
pip install git+https://github.com/Poy-Coder/cjk-pptx-engine.gitfrom pptx import Presentation
from pptx.util import Inches
from cjk_measure import safe_textbox
prs = Presentation()
prs.slide_width = Inches(13.333)
prs.slide_height = Inches(7.5)
slide = prs.slides.add_slide(prs.slide_layouts[6])
# 标题
safe_textbox(slide, 1, 0.5, 11, 1, "城市管理执法工作汇报",
font_name="微软雅黑", font_size=28, bold=True)
# 正文
safe_textbox(slide, 1, 2, 11, 4,
"根据《中华人民共和国行政处罚法》第五十四条的规定,"
"公民、法人或者其他组织有违法行为的事实清楚,"
"证据确凿充分,且依据有关法律法规应当给予行政处罚的,"
"行政机关应当依法作出行政处罚决定。",
font_name="仿宋", font_size=14)
prs.save("output.pptx")
print("✅ 生成成功 — 零溢出")pip install git+https://github.com/Poy-Coder/cjk-pptx-engine.git
cjk-audit output.pptx项目地址:https://github.com/Poy-Coder/cjk-pptx-engine 有问题提 Issue。