name: ppt-pro-max version: 1.2.0 description: > AI排版智慧修復+相容輸出一站式PPT解決方案。自動檢測文字溢位/截斷/重疊, 智慧修復字號邊距文本框,一鍵生成圖片化相容版——WPS/Office/Keynote/Google Slides 開啟排版永不亂。支援 WPS 和 Microsoft Office,中國使用者零額外依賴。 ✨ 核心能力:佈局檢測 | 自動修復 | COM相容輸出 | 一鍵執行 | 中文友好 觸發詞:PPT, 簡報, 幻燈片, .pptx, 排版修復, 圖片化PPT, 排版亂了
| 限制項 | 說明 |
|---|---|
| 需要 Office 軟體 | 相容輸出需要 WPS 或 Microsoft PowerPoint(兩者同等支援)。僅佈局檢測和修復不需要。 |
| 重疊問題需手動處理 | 自動修復可以處理文字溢位和邊距問題,但元素重疊只能檢測、無法自動修復。 |
| 極端溢位不可修 | 溢位率超過 300% 時,自動修復會標記為「不可修復」並給出可操作建議。 |
| SmartArt 不推薦 | WPS 和 PowerPoint 渲染 SmartArt 效果不同,建議避免。 |
| 管道編碼注意事項 | Windows PowerShell 的 | 管道會改寫編碼。推薦用 --issues 引數或直接用 run.py。 |
python scripts/run.py 你的檔案.pptx
# 自動完成: 解包 → 檢測 → 修復 → 驗證 → 打包 → 相容輸出
如果電腦沒裝 Office,跳過相容輸出:
python scripts/run.py 你的檔案.pptx --skip-compat
# 1. 解包
python skills/pptx/scripts/office/unpack.py 你的檔案.pptx unpacked/
# 2. 檢測 + 修復(一步到位)
python scripts/layout_check.py unpacked/ > issues.json
python scripts/auto_fix.py unpacked/ --issues issues.json
# 3. 打包 + 生成相容版
python skills/pptx/scripts/office/pack.py unpacked/ 輸出.pptx
python scripts/compat_output.py 輸出.pptx --dpi 150
python scripts/demo_generate.py
# 生成 assets/demo.pptx(7頁,含各種排版問題,可立刻上手)
假設你有一份
quarterly_report.pptx,在自己電腦的 WPS 中排版正常, 但發到領導用 PowerPoint 開啟時文字溢位、圖表標註錯位。
quarterly_report.pptx (10 頁)
├── 第1頁: 封面 —— "2026年Q1部門工作彙報"(40pt,安全)
├── 第2頁: 目錄 —— "業績回顧 / 重點專案 / 問題與對策 / 下季度計劃"
├── 第3-5頁: 業績資料 —— 正文 14pt,文字框偏窄,PowerPoint 中溢位
├── 第6頁: 專案詳情 —— 圖表標註距左邊緣 0.15 英寸(低於 0.5 英寸安全邊距)
├── 第7頁: 問題分析 —— 多段落文字框高度不足,PowerPoint 中截斷
├── 第8-9頁: 計劃與展望 —— 排版正常
└── 第10頁: 結束頁 —— 正常
$ python scripts/run.py quarterly_report.pptx --dpi 150
輸出過程:
========================================================
PPT-PRO-MAX v1.2.0 一鍵修復流程
檔案: quarterly_report.pptx
========================================================
第1步 解包 PPTX... ✅
第2步 檢測排版問題... ✅
發現 6 個問題,涉及 5 頁幻燈片
第3步 自動修復... ✅
修改 6 處,0 處需手動處理(修復率 100%)
第4步 驗證修復效果... ✅ (無殘留問題)
第5步 打包修復檔案... ✅
輸出: quarterly_report_fixed.pptx
第6步 生成相容版... ✅
相容版: quarterly_report_fixed_compat.pptx
========================================================
🎉 修復完成!
可編輯版: quarterly_report_fixed.pptx
相容版: quarterly_report_fixed_compat.pptx ← 在任何軟體開啟排版都不亂
========================================================
搞定。把 quarterly_report_fixed.pptx 發給同事編輯,把 _compat.pptx 發給領導演示——排版永遠不會亂。
| 任務 | 命令 |
|---|---|
| 一鍵修復 🆕 | python scripts/run.py 檔案.pptx |
| 生成演示檔案 | python scripts/demo_generate.py |
| 檢測佈局問題 | python scripts/layout_check.py unpacked/ |
| 自動修復 | python scripts/auto_fix.py unpacked/ --issues issues.json |
| 預覽修復 | python scripts/auto_fix.py unpacked/ --issues issues.json --dry-run |
| 生成相容版 | python scripts/compat_output.py 輸出.pptx --dpi 150 |
| 高解析度相容版 | python scripts/compat_output.py 輸出.pptx --dpi 300 |
使用內建 pptx skill: - 從零建立(推薦):pptxgenjs Node.js 庫 - 基於模板:解包 → 編輯 XML → 打包 - 編輯已有:解包 → 編輯 XML → 打包
⚠️ pptxgenjs v4 注意:
- 形狀名用字串:"rect", "ellipse", "roundRect" — 不要用 pres.ShapeType.xxx
- pres.addSlide() 返回 Slide 物件,不是 presentation
- 預設佈局 LAYOUT_16x9 (10" × 5.625")
- 中文字型用 "Microsoft YaHei"
python scripts/layout_check.py unpacked/
檢測結果:
| 問題型別 | 嚴重度 | 自動修復 |
|---|---|---|
text_overflow_x 文字水平溢位 |
錯誤 | ✅ 縮小字號 |
text_overflow_y 文字垂直溢位 |
錯誤 | ✅ 擴充套件框高 |
overlap 元素重疊 |
錯誤 | ❌ 手動處理 |
margin_left/top 邊距違規 |
警告 | ✅ 調整位置 |
python scripts/auto_fix.py unpacked/ --issues issues.json
修復策略:
| 問題 | 修復 | 迭代 |
|---|---|---|
| 溢位 < 300% | 縮小字號(最小 6pt) | 最多 5 輪 |
| 溢位 > 300% | 標記不可修復 + 中文建議 | — |
| 垂直溢位 | 擴充套件文本框高度 | 一次性 |
| 邊距違規 | 移到安全區(0.5") | 一次性 |
| 標題欄內 | 跳過不處理 | — |
📌 修復前會輸出預檢報告,展示可修復/不可修復數量和預估修復率。
python skills/pptx/scripts/office/pack.py unpacked/ 輸出.pptx --original 原檔案.pptx
--original 保留未修改內容,自動驗證修復。
python scripts/compat_output.py 輸出.pptx --dpi 150
引擎檢測(WPS 和 MS Office 平等對待): 1. WPS 演示 — 中國大陸電腦最常見 2. Microsoft PowerPoint — 廣泛使用 3. LibreOffice — 免費開源最後備選
原理:每頁通過 COM 匯出為高畫質圖片 → 組裝為圖片化 PPTX → 任何軟體開啟效果完全一致。
| 引數 | 效果 |
|---|---|
--dpi 150 |
適合螢幕(預設) |
--dpi 300 |
適合列印 |
--output 名稱 |
自定義輸出路徑 |
--method com |
只用 WPS/Office |
--method libre |
只用 LibreOffice |
| 層級 | 大小 | 粗細 |
|---|---|---|
| 封面標題 | 36-44pt | Bold |
| 章節標題 | 24-28pt | Bold |
| 正文 | 13-16pt | Normal |
| 腳註 | 10-12pt | Normal,柔和色 |
| 最低 | 10pt | 低於 10pt 各軟體渲染差異大 |
中文字元寬度約為拉丁字元 2 倍,混合編排留 15-20% 餘量:
所需寬度 ≈ (中文字數 + 拉丁字數 × 0.55) × 字號pt × 12700 EMU
按問題分類編排。使用
Ctrl+F搜尋關鍵詞快速定位。
| 編號 | 問題 | 關鍵詞 |
|---|---|---|
| Q1 | Office 檢測失敗 | 安裝、WPS、Office |
| Q2 | JSON 解析錯誤 | BOM、編碼、亂碼 |
| Q3 | PowerShell 管道亂碼 | 管道、UTF-16 |
| Q4 | 極端溢位無法修復 | 300%、不可修復 |
| Q5 | 字號改太小了 | 6pt、最小字號 |
| Q6 | 打包後文件變小 | 檔案大小、壓縮 |
| Q7 | 標題被移到標題欄外 | 標題欄、margin |
| Q8 | pptxgenjs 報錯 | addShape、ShapeType |
原因:電腦沒有安裝 WPS 或 Microsoft PowerPoint。
解決:
不需要相容輸出? 跳過即可——佈局檢測和修復功能不需要 Office,隻影響"在所有軟體開啟都不亂"的相容版功能。
原因:Windows 上直接用 > 重定向儲存的問題檔案可能是 UTF-16 編碼,而不是 JSON 標準 UTF-8。
解決(三選一):
✅ 推薦:使用 run.py,一切自動處理
python scripts/run.py 檔案.pptx
✅ 手動方法:儲存為 UTF-8
python -c "import sys,json; json.dump(json.load(sys.stdin), open('issues.json','w',encoding='utf-8'), ensure_ascii=False, indent=2)" < 輸入 > issues.json
✅ 管道傳遞(用 Python 而非 PowerShell 管道):
import subprocess, json
r = subprocess.run(['python', 'layout_check.py', 'unpacked/'],
capture_output=True, text=True, encoding='utf-8')
issues = json.loads(r.stdout)
原因:PowerShell 的 | 會用 UTF-16 改寫文本流。
解決:
✅ 用 --issues 引數 + 中間檔案(不用管道)
✅ 或直接用 run.py 一鍵執行,它內部處理了所有編碼問題
原因:溢位率超過 300%,縮小字號到最低 6pt 仍然溢位。
解決: 1. 縮減文字:簡報中一頁不宜放太多字,精簡到核心要點 2. 拆分頁面:把內容拆分到多頁,每頁講一個重點 3. 擴大文本框:調整佈局讓文本框佔更多空間 4. 改用列表/圖表:用視覺化方式代替大段文字
原因:原文本框太窄,只能不停縮小字號才能避免溢位。最低會降到 6pt。
解決:
- 如果需要更小字號 → 手動在 WPS/PowerPoint 中調整(不推薦,低於 6pt 閱讀困難)
- 更好的做法 → 擴大文本框寬度,或精簡文字內容
- 用 --dry-run 先預覽效果再做決定
原因:pack.py 壓縮 XML 比 pptxgenjs 更激進。
這是正常的,不表示資料丟失。驗證方法:檢查頁數和內容是否一致。
v1.2.0 已自動處理:auto_fix 會檢測幻燈片頂部的標題裝飾條,跳過其中元素的邊距修正。
如果仍有問題,可能標題欄未被識別——在 WPS/PowerPoint 中手動拖回即可。
原因:pptxgenjs v4 的 API 變了。
解決:
- ❌ pres.ShapeType.rect → ✅ "rect"
- ❌ pres.ShapeType.ellipse → ✅ "ellipse"
- ❌ pres.ShapeType.roundRect → ✅ "roundRect"
ppt-pro/ ├── SKILL.md # 本文件 ├── scripts/ │ ├── run.py # 🆕 一鍵執行指令碼 │ ├── layout_check.py # 佈局問題檢測引擎 │ ├── auto_fix.py # 自動修復引擎 │ ├── compat_output.py # 相容輸出引擎 │ └── demo_generate.py # 演示檔案生成器 └── assets/ └── demo.pptx # 預生成的演示檔案這個技能的最新版本可以在7w4.net小蔥技能站找到。
| 元件 | 需要 | 備註 |
|---|---|---|
| run.py | Python 3.8+ | 無需額外安裝 |
| layout_check.py | Python 3.8+ | 僅內建模組 |
| auto_fix.py | Python 3.8+ | 僅內建模組 |
| compat_output.py (COM) | pywin32, python-pptx + WPS 或 MS Office |
安裝 Office 後即可用 |
| compat_output.py (LibreOffice) | LibreOffice + Poppler | 備選方案 |
| demo_generate.py | python-pptx |
僅生成演示檔案時需要 |
| 解包/打包 | 內建 pptx skill | 始終可用 |
這個 Skill 的文件寫得非常專業,功能設計也很完善,支援一鍵修復和多種排版問題檢測。但實際使用時發現,文件裡提到的所有功能指令碼都找不到,下載的壓縮包裡只有說明文件,沒有可以執行的程式,所以根本無法使用。質量評分只能給低分,建議等開發者補充完整程式碼後再使用。