TL;DR
- 用 Claude Code 的官方 pptx skill 可以產出又好看又可編輯的 .pptx——底層 python-pptx,每個文字框、色塊都是原生 PowerPoint 元素,打開就能改,不是圖片貼死。
- 但 python-pptx 本身很樸素(沒圓角、沒陰影、內建模板很醜),「好看」不是工具給的,是設計出來的。這篇主線就是拆解「怎麼設計得好看」:配色系統、字型層次、版型留白、配圖,四個可以照抄的實作。
- 好看的最後一哩是驗收:把 .pptx render 成逐頁圖用眼睛抓醜(爆版、蓋字、對不齊)。盲寫看不到,第一版幾乎一定醜,render loop 才是把它救回好看的關鍵。
📌 目錄
- 「好看」才是難的那一半
- 先把「可編輯」這個前提講完
- 好看第一支柱:配色系統
- 好看第二支柱:字型層次
- 好看第三支柱:版型與留白
- 好看第四支柱:配圖
- 讓它真的好看的最後一哩:render 驗收 loop
- 我踩到的坑
- 常見問題 FAQ
- 延伸資源
⚡ 「好看」才是難的那一半
「AI 能不能做 PPT」這問題其實早就有答案了——能,而且能做出可編輯的。真正卡住大家的是下一題:做出來的東西好不好看。
我看過太多 AI 產的簡報,兩種極端:一種是「整頁一張圖」,漂亮但改不動;另一種是可編輯,但醜得像工程師隨手拉的——左上角一個標題、一排 bullet、白底,毫無設計。我要的是中間那塊:能進 PowerPoint 反覆改、而且看起來有設計過。
用 Claude Code 的 pptx skill,可編輯是免費送的(後面一段講完就帶過);難的是好看。而 python-pptx 這工具沒有任何美化外掛——沒有圓角、沒有陰影、內建模板還很醜。所以這篇不花時間吹工具,而是拆解我實際做的事:用四個支柱把樸素的預設,設計成看起來專業的簡報。文章裡的投影片截圖,都是我這次真的用 python-pptx 產、真的 render 出來的,不是示意圖。
🔧 先把「可編輯」這個前提講完
好看要建立在「可編輯」上,否則改一個字都得整頁重生,再好看也是半成品。這段快速交代,之後全篇聚焦好看。
pptx 是 Anthropic 官方 skill,底層呼叫 python-pptx 寫程式組出真正的 .pptx。關鍵差別在它用原生元件、不是把整頁畫成圖:
- 文字用真文字框(
add_textbox)——打開能點、能選、能改字、能換字型。 - 色塊、分隔線、卡片用原生 shape(
add_shape)——能拉大小、換顏色。 - 只有配圖才是圖片(
add_picture)——圖本來就該是圖。
上面這張標題頁,深色背景是一個 shape、左邊黃條是一個 shape、標題跟副標各是一個文字框。在 PowerPoint 打開,每一樣都能直接改——因為它們本來就是那些元件,不是一張截圖。
安裝跟依賴一次講完:
# 裝官方 pptx skill(在 Claude Code 內執行)
# /plugin install pptx@anthropic-skills
# 本機依賴(macOS 範例)
pip install "python-pptx" "markitdown[pptx]" Pillow
brew install libreoffice poppler
| 依賴 | 用途 | 驗證 |
|---|---|---|
| python-pptx 1.0+ | 產檔 | python3 -c "import pptx; print(pptx.__version__)" |
LibreOffice(soffice) | 驗收:render 成圖 | which soffice |
Poppler(pdftoppm) | 驗收:PDF 轉逐頁圖 | which pdftoppm |
🎨 好看第一支柱:配色系統
配色是「一眼看起來有沒有設計過」影響最大的一項。醜簡報通常敗在顏色太多、彼此打架、沒有主從。做法:
用一套現成調色盤,不要自己憑感覺配。 pptx skill 內建十組專業調色盤(Midnight Executive、Forest & Moss、Coral Energy⋯),挑一組跟主題氣質對的。上面截圖用的是 Midnight Executive:
- 主色(深 navy
#1E2761):佔 60–70% 視覺重量,標題頁 / 結論頁的背景。 - 輔色(ice blue
#CADCFC):內容區塊、次要文字。 - 一個銳利 accent(mustard
#F5D547):只用在「要你看這裡」的地方——側邊條、關鍵數字、強調詞。accent 貴在稀有,整頁只點一兩處。
深淺三明治:標題頁跟結論頁用深底,中間內容頁用淺底。這個明暗節奏會讓整份簡報有「起承轉合」的呼吸感,而不是二十頁一樣的白。
在程式裡就是把這幾個色碼定成常數,全篇引用同一組——顏色一致,是「像同一個設計師做的」的第一個訊號:
NAVY = RGBColor(0x1E, 0x27, 0x61) # 主色
ICE = RGBColor(0xCA, 0xDC, 0xFC) # 輔色
ACCENT= RGBColor(0xF5, 0xD5, 0x47) # 點綴,稀有使用
🔠 好看第二支柱:字型層次
第二個一眼判死的地方是字。醜簡報的字級距不夠、字型太隨便——標題跟內文差不多大,整頁像一坨。好看的關鍵是製造清楚的層次。
別用預設 Arial/Calibri 當標題。 skill 推薦的配對是襯線配無襯線,例如 Georgia(標題)+ Calibri(內文)——標題有個性、內文好讀,兩者對比本身就是設計。
拉開級距(type scale),別讓相鄰層級太接近:
| 角色 | 建議級數 | 作用 |
|---|---|---|
| 大標題(封面) | 40–54pt | 一眼抓住 |
| 頁標題 | 28–36pt | 每頁的錨點 |
| 內文 / bullet | 14–18pt | 好讀為上限 |
| 註解 / footer | 10–12pt | 退到背景 |
同一頁字型別超過兩種、字級別超過三種。 克制,是好看的隱形骨架。
📐 好看第三支柱:版型與留白
排版看的是對齊、留白、跟一個貫穿全場的視覺母題。
留白不是浪費,是呼吸。 新手最愛把版面塞滿——結果每一樣都在喊、就等於沒有重點。四周留足邊界(margin),元素之間留間距(gutter),讓內容自己浮出來。上面那張標題頁如果把字塞到貼邊,質感立刻掉一半。
對齊到一條隱形的網格。 所有文字框、色塊的左緣對齊同一條垂直線,標題基線對齊同一條水平線。差幾個 pixel 肉眼就覺得「怪怪的但說不上來」——那就是沒對齊。(python-pptx 有個文字框內距的坑會害你對不齊,見後面踩坑。)
一個重複的視覺母題,貫穿每一頁。 這是「整份像同一套設計」最強的手法。例如我固定「每個頁標題左邊都有一根 accent 色的粗條」:
# 每頁標題左邊固定一根 accent 粗條 —— 重複母題
bar = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE,
Inches(0.6), Inches(0.55), Inches(0.12), Inches(0.5))
bar.fill.solid(); bar.fill.fore_color.rgb = ACCENT
bar.line.fill.background() # 去掉外框線
bar.shadow.inherit = False # 關掉預設陰影(見踩坑)
同一根粗條出現在每一頁,大腦就會把整份簡報讀成「有系統的一套東西」,而不是二十張各做各的投影片。
🖼️ 好看第四支柱:配圖
純文字頁最容易被跳過,也最容易顯得單薄。每頁最好都有一個視覺元素——不一定是照片,一根分隔線、一個大數字、一塊色卡都算。
要放插圖 / 封面圖 / 章節背景,別用內建 clipart(那是醜的來源之一)。我走 codex 的 image_gen 生圖(直接落地到指定路徑),再用 add_picture 塞進去,風格跟主題對得上、也跟其他頁一致:
slide.shapes.add_picture("cover-art.png", Inches(7), Inches(1),
width=Inches(5.5))
配圖的原則跟前面一致:服務層次,不是裝飾。圖是用來引導視線、填視覺重量的,不是塞好塞滿。一張切題的大圖 + 大量留白,遠勝一堆小 icon 擠成一團。
🔍 讓它真的好看的最後一哩:render 驗收 loop
前面四支柱寫進程式,不代表畫出來就好看。 python-pptx 最反直覺的地方:你寫程式時是盲寫——看不到成品。中文字有沒有爆版、accent 色塊有沒有蓋到字、對齊有沒有跑掉、留白夠不夠,程式碼上完全看不出來。第一版 render 出來幾乎一定有醜的地方。
所以好看的最後一哩不是「寫得漂亮」,是「把醜的地方一輪一輪抓出來修」:
# .pptx → PDF → 逐頁圖
soffice --headless --convert-to pdf deck.pptx
pdftoppm -jpeg -r 150 deck.pdf slide
# 產出 slide-1.jpg、slide-2.jpg ⋯ 逐頁開圖用眼睛看
skill 官方的態度很直白:假設一定有問題,你的工作是把它找出來,不是確認它對了。而且建議用 subagent 用新的眼睛看——盯著自己寫的程式太久,腦補的樣子會蓋過實際畫出來的樣子。抓到問題就修,修完重新 render 那幾頁再看,直到一輪掃過沒有新醜點才算完。
這一步最沒有捷徑,卻最決定成品好不好看。螢幕上的正確只有眼睛能驗——型別過、程式跑完,都不等於好看。
🕳️ 我踩到的坑
坑一:shape 預設帶陰影,質感被拖髒
python-pptx 加的 shape 會繼承版面的陰影。我第一版 demo 的 accent 色塊莫名多了一圈陰影,跟乾淨的設計調性打架、整個顯髒。每個 shape 都要明確關掉:
sp.shadow.inherit = False # 不加就會有一圈預設陰影
坑二:想要圓角 / 陰影卡片?官方就是不支援
精緻圓角卡片、柔和陰影——python-pptx 做不到,這是明確限制,不是你寫錯。想要這類效果:換 shape 類型繞、接受樸素、或直接用生成圖當背景把效果畫進圖裡。別在這耗時間。
坑三:文字框內距害你對不齊
文字框預設有 padding,你想讓色塊邊緣對齊文字第一個字,結果差幾個 pixel——就是這個內距在作怪,而對不齊正是「看起來不專業」的隱形殺手。四邊 margin 設 0:
tf.margin_left = 0; tf.margin_right = 0
tf.margin_top = 0; tf.margin_bottom = 0
坑四:不 render 就交,好看歸零
最大的坑是以為程式碼對了、成品就好看了。中文字爆版、色塊蓋字、footer 撞內容——這些只有 render 成圖用眼睛看才抓得到。鐵律:沒 render、沒逐頁看過,不算做完。
❓ 常見問題 FAQ
Q1:python-pptx 這麼樸素,真能做出好看的簡報?
能,但好看不是工具給的,是設計出來的。工具負責「可編輯」,好看靠四支柱:配色系統、字型層次、版型留白、配圖,加上 render 驗收 loop 把醜點抓出來修。工具樸素反而逼你把設計做對,而不是依賴內建特效。
Q2:我要用 /pptx 指令觸發嗎?
不用。pptx 是 skill 不是 slash command。你用白話講「幫我做一份 X 主題、幾頁、給誰看的簡報」,Claude 會自動判斷語意觸發,不需要打斜線。
Q3:最影響好看的單一因素是什麼?
配色跟層次。顏色收斂成一套(60-30-10)、字級距拉開(標題 vs 內文差一倍以上),這兩件做對,就從「工程師隨手拉」跳到「有設計過」。其次是留白跟對齊。
Q4:能套公司品牌配色 / 模板嗎?
可以。pptx skill 支援讀既有模板套版型、品牌色;也可以做一份自訂 skill 把公司配色、字型固定進去,之後每次生自動套。2026 年 2 月的 Office add-in 更進一步,會先讀你的 slide master 再生。
Q5:一定要裝 LibreOffice 嗎?
產檔只需要 python-pptx,但要做到好看就一定要裝——LibreOffice(soffice)+ Poppler(pdftoppm)是把 .pptx render 成圖的驗收鏈。不 render 就看不到醜點,好看無從談起。
🔗 延伸資源
- Anthropic 官方:Use Claude for PowerPoint — 官方對 PowerPoint 支援的說明
- Claude Agent Skills 快速上手 — skill 機制怎麼運作
- python-pptx 官方文件 — API、限制、範例
- I put Claude in PowerPoint against Gamma — Claude 生簡報實測對照
- 站內:想改走「網頁式簡報」(視覺上限更高但不能進 PowerPoint),可以看 frontend-slides 那條路,跟本篇 .pptx 路線互補。