《Illustrator 轉 SVG 實戰小說》之一:開源工具的探索與務實方案
這是一段關於Icekimo與Claude,為了追求網頁極致效能,向 Adobe Illustrator格式發起挑戰的開源除錯歷程。
你有將 AI (Adobe Illustrator) 圖檔轉換 SVG 的工具或技能,或是推薦的開源工具嗎?來源版本應該是最新的檔案格式。
我先說明一個重要前提,然後給你務實的方案。
核心問題:Illustrator 的 .ai 檔本質上「不是」可直接解析的格式
最新版的 .ai 檔(Illustrator CC 以後)其實是一個 PDF 相容封裝——Illustrator 在儲存時會把一份完整的 PDF 表示嵌進去(這就是為什麼很多工具能「打開」.ai)。但 Adobe 真正的原生圖層、外觀、效果資料是用私有結構存放的,沒有公開規格。所以任何開源工具能讀的,其實都是那層 PDF/相容資料,而不是 Illustrator 的完整原生結構。
這代表一個取捨:你能可靠拿到向量路徑與基本樣式,但 Illustrator 特有的效果(如即時效果、某些漸層網格、符號實例、文字的進階排版)可能會被點陣化或遺失。
關於我手邊的能力,我有處理 PDF 與 SVG 的環境,但沒有專門針對 .ai 的轉換技能。我可以用開源工具在我的環境裡幫你跑轉換,但你得先把檔案上傳——不過在那之前,我想先確認你的使用情境,因為這會決定該推薦哪條路線。
以下是目前開源界真正可用的幾個主流選項:
1. Inkscape(CLI 模式)— 最務實的主力
Inkscape 1.x 內建能直接讀 .ai(其實是走它的 PDF 匯入引擎),而且有完整的命令列介面,適合批次。對最新版 .ai 的相容性,靠的就是前面說的那層 PDF 相容資料。批次的典型寫法是:
inkscape input.ai --export-type=svg --export-filename=output.svg
它的強項是匯出後可以順手做最佳化(例如 --export-plain-svg 去掉 Inkscape 自家命名空間),缺點是漸層網格、某些效果處理得不夠完美。
2. pdf2svg / pdftocairo — 走 PDF 本質的路線
既然 .ai 內含 PDF,你其實可以直接把它當 PDF 餵給這兩個工具(pdftocairo 來自 poppler-utils)。這條路對「純向量路徑」的還原往往最乾淨,但完全不懂圖層概念,文字也可能被轉成路徑。多頁/多畫板的 .ai 要注意只會抓特定頁。
3. svgo — 不是轉換器,是後處理
不管用哪個工具轉出來,產物通常很髒(冗餘的 transform、過長小數、無用的 metadata)。svgo 是 Node.js 工具,專門壓縮清理,做網頁/icon 用途幾乎必跑。
為什麼我不直接推「線上轉換器」?
你重視自托管與開源,而且 .ai 可能含商業設計資產,丟上不明網站並不安全。上述三個工具都能在你的 HomeLab(Mac Mini 或 Linux box)本地跑,Inkscape 也有 headless 模式適合放進你習慣的腳本流程。
我可以在本地環境幫你實際跑一次轉換驗證效果——但在此之前,我們需要根據你的實際用途,來選擇最適合的優化路線。