一句話結論
Stirling PDF 是一套可自架的開源 PDF 工具箱,把 60+ 種 PDF 操作(合併、分割、壓縮、轉檔、OCR、簽名、遮黑)收進一個網頁介面,檔案不用上傳到別人的雲端,Docker 一行指令就能跑起來。
為什麼要「自己架一套 PDF 工具」?
多數人處理 PDF 的習慣是:打開瀏覽器,搜尋「PDF 合併」,點進一個免費網站,把檔案拖上去,處理完下載。
問題在於你剛剛把檔案交給了陌生人。可能是公司合約、身分證影本、薪資單、病歷、標案文件、客戶資料——這些檔案在對方伺服器上停留多久、會不會被留存、會不會被拿去訓練模型,你完全無法確認。
對個人來說,這是隱私問題;對公司來說,這是合規問題。台灣的《個人資料保護法》要求個資的蒐集、處理、利用須有特定目的與安全維護措施,把客戶的個資 PDF 隨手丟到國外免費網站轉檔,在稽核時很難說得過去。
Stirling PDF 的解法很直接:整套工具跑在你自己的機器上。檔案從頭到尾不離開你的網路,處理完自動刪除暫存檔,而且它是開源專案,你可以自己檢查它到底對檔案做了什麼。
Stirling PDF 是什麼:專案基本資料
| 項目 | 內容 |
|---|---|
| GitHub | Stirling-Tools/Stirling-PDF |
| Stars | 約 92,700(2026-09-20 查詢) |
| Forks | 約 9,000 |
| 主要語言 | Java(Spring Boot 後端)+ TypeScript/React 前端 |
| 首次建立 | 2023 年 1 月(GitHub repo 建立時間) |
| 最新版本 | v2.14.3(2026-08-06 發布) |
| Docker 下載量 | 官方宣稱累計 3,000 萬次以上 |
| 授權 | Open-core:核心工具 MIT,企業模組為專有授權 |
| 官方文件 | docs.stirlingpdf.com |
作者是 Anthony Stirling(GitHub 帳號 Frooodle),專案在 2024 年獲得創投 Open Core Ventures(GitLab 共同創辦人 Sid Sijbrandij 創辦)約 200 萬美元種子輪投資,也因此在 v1.0.0 從純 MIT 轉型為 open-core 模式(後面會詳細說明這件事的影響)。
60+ 工具怎麼分類:實際會用到什麼
Stirling PDF 的工具數量官方說法是 60+,文件有時寫 55+。實際分類如下:
| 分類 | 代表工具 | 台灣使用者最常需要的場景 |
|---|---|---|
| 頁面操作 | 合併、分割、旋轉、頁面重排、裁切、擷取/刪除頁面 | 把掃描的單頁 PDF 合併成一本、抽掉空白頁 |
| 格式轉換 | PDF ↔ 圖片(PNG/JPG)、PDF ↔ Office(Word/Excel/PowerPoint)、CBR | 合約轉 Word 修改、簡報轉 PDF 給客戶 |
| 壓縮 | PDF 檔案壓縮 | 報價單要寄 email,附件大小卡在 10MB |
| OCR | 掃描檔轉可搜尋文字(Tesseract 引擎) | 紙本發票、公文掃描後要能 Ctrl+F |
| 安全性 | 加/移除密碼、修改權限、憑證簽章、手寫簽名、共享簽名 | 標案文件、薪資單要加密再寄出 |
| 遮蔽與編輯 | 遮黑(Redaction)、內容編輯、標註、填寫表單 | 身分證影本要遮掉部分字號 |
| 比對與進階 | PDF 差異比對(Compare)、自動重新命名、Pipeline 自動化、修復、掃描影像分割 | 合約改版前後比對、批次整理掃描檔 |
其中兩個功能值得特別提:
- Compare(差異比對):把兩份 PDF 疊起來,用視覺化方式標出哪裡不同。法務、採購、PM 審合約改版時非常好用,這是多數線上免費工具沒有的功能。
- Redaction(遮黑):不是「畫一個黑色方塊蓋住」——那在 PDF 裡只是視覺覆蓋,文字還留在檔案裡。Stirling PDF 的遮黑會真的把底層文字移除。
5 分鐘安裝:Docker 一行指令跑起來
前提是你已經有 Docker 環境。若還沒有,可以先看本站的 Docker 完整教學。
方法 A:最快的方式(單一指令)
docker run -d \
--name stirling-pdf \
-p 8080:8080 \
-v ./stirling-data:/configs \
docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest
打開 http://localhost:8080 就能用。
注意登入預設是開啟的:官方文件說明新容器啟動時
security.enableLogin預設為true,會建立一組預設帳號 admin/stirling,並在首次登入時要求你改密碼。請務必先改掉,或明確設定SECURITY_ENABLELOGIN=false改用無登入模式(僅建議在完全隔離的內網使用)。
方法 B:生產環境用 docker-compose(含繁中 OCR 目錄)
services:
stirling-pdf:
image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest
container_name: stirling-pdf
ports:
- '8080:8080'
volumes:
- ./stirling-data/tessdata:/usr/share/tessdata # OCR 語言包
- ./stirling-data/configs:/configs # 設定與資料庫
- ./stirling-data/logs:/logs # 系統日誌
- ./stirling-data/pipeline:/pipeline # 自動化流程設定
environment:
- SECURITY_ENABLELOGIN=true # 保持登入驗證(建議)
- SYSTEM_DEFAULTLOCALE=zh-TW # 介面預設繁體中文
- SYSTEM_GOOGLEVISIBILITY=false # 不要被搜尋引擎索引
- SYSTEMFILEUPLOADLIMIT=2000MB # 單檔上限 2GB(預設較小)
restart: unless-stopped
deploy:
resources:
limits:
memory: 4G
mkdir -p stirling-data/{tessdata,configs,logs,pipeline}
docker compose up -d
每個 volume 的用途:/configs 存設定與資料庫、/usr/share/tessdata 放 OCR 語言包、/logs 放日誌、/pipeline 放自動化流程設定。升級時只要 docker compose pull && docker compose up -d,資料都在 volume 裡。
版本標籤怎麼選:官方文件列兩種主要版本——latest(標準版,全部 PDF 功能,多數人的選擇)與 latest-ultra-lite(極輕量,只有核心功能,適合資源受限的機器);專案 README 另外提到 latest-fat(含額外字型與轉檔相依套件,追求最高轉檔相容性時使用)。
繁體中文 OCR 設定(這是台灣使用者最常卡住的地方)
Stirling PDF 的 OCR 用 Tesseract 引擎。官方 Docker 映像檔預設只內建英文、德文、法文、葡萄牙文與簡體中文——繁體中文(chi_tra)要自己裝,否則你會發現 OCR 出來的繁中文件全是亂碼。
設定步驟只有兩步:
# 1. 下載繁中語言包(tessdata 版:精準度高、載入較慢)
cd stirling-data/tessdata
curl -L -O https://raw.githubusercontent.com/tesseract-ocr/tessdata/main/chi_tra.traineddata
# 2. 若你的機器很弱,可以改用體積較小、速度較快的 tessdata_fast 版本
curl -L -O https://raw.githubusercontent.com/tesseract-ocr/tessdata_fast/main/chi_tra.traineddata
兩個一定要記住的坑:
- 絕對不要刪掉
eng.traineddata。官方文件明講英文語言包是必需的,刪掉會導致 OCR 功能整體失效。 - 語言包要放在掛載進容器的 tessdata 目錄(本文是
./stirling-data/tessdata,容器內對應/usr/share/tessdata)。放在容器裡的其他位置,重啟就消失。
放好之後 docker compose restart,在 OCR 工具的語言選單裡就會出現繁體中文,勾選後處理掃描檔即可。
用 API 直接呼叫 OCR(自動化)
不想手動點介面,OCR 也有 REST API:
curl -X POST http://localhost:8080/api/v1/misc/ocr-pdf \
-F "fileInput=@scanned.pdf" \
-F "languages=chi_tra" \
-F "ocrType=skip-text" \
-o searchable.pdf
languages可重複帶入多個語言(例如中英混排的公文:chi_tra+eng)ocrType=skip-text會略過已經有文字層的頁面(Auto 行為),要全部重做就用force- 回傳的
searchable.pdf就是含文字層、可以複製貼上的版本
檢查服務狀態:
curl http://localhost:8080/api/v1/info/status
自架 vs 線上工具:一張表看清楚
| 比較項目 | Stirling PDF(自架) | iLovePDF/Smallpdf 等線上工具 | Adobe Acrobat 線上版 |
|---|---|---|---|
| 費用 | 免費(社群自架版,60+ 工具全開) | 免費版有次數與檔案大小限制,完整功能需訂閱 | 訂閱制(約每月 20 美元起) |
| 檔案流向 | 完全不離開你的機器 | 上傳到第三方公有雲 | 上傳到第三方公有雲 |
| 檔案大小限制 | 由你決定(可設 2GB 以上) | 免費版通常限制在幾十 MB | 免費版有限制 |
| 批次處理 | 無限量,可用 Pipeline 與 API 跑上萬份 | 免費版限制批次數量 | 依方案而定 |
| 差異比對(Compare) | ✅ 內建 | 多數免費版沒有 | 付費版有 |
| PDF 密碼/權限 | ✅ 內建 | ✅ | ✅ |
| 需要自己維護 | ✅ 要(Docker 更新、備份) | ❌ 不用 | ❌ 不用 |
| 中文 OCR | ✅ 需自行安裝 chi_tra 語言包 | 依服務而異,多數需付費 | ✅ |
判準很簡單:處理的是「別人的資料、公司的機密、自己的證件」→ 自架;只是臨時把一張圖片轉 PDF 傳給朋友 → 用線上工具就好。
進階:V2 之後多了什麼
Stirling PDF 在 V2 有一次相當大的改版,幾個實用改變:
- Stateful Processing(上傳一次、連續處理):檔案上傳到工作區後可以連續套用多個工具(合併→壓縮→加密),不用每次重新上傳。
- Undo/Redo:頁面編輯有完整歷史紀錄。
- 原生桌面版:官方提供 Windows(exe/msi)、macOS(Universal DMG)、Linux(deb/rpm/AppImage)桌面版,技術上是 Tauri+本機 Java 後端。
- JPDFium 記憶體優化:合併與分割的記憶體消耗大幅下降(官方 release notes 說可達 99% 等級的改善)。
- MCP 伺服器整合:可把 PDF 工具暴露成 MCP 介面,讓 Claude Desktop 之類的 AI 助手直接呼叫處理 PDF——對想把 PDF 流程接進 AI agent 的人來說是新玩法。
自動化 Pipeline
Pipeline 讓你把多個步驟串成一條流水線(例如:監看資料夾 → 自動 OCR → 加水印 → 加密 → 歸檔),設定可以匯出成 JSON 重複使用,也可以透過 API 觸發:
curl -X POST "http://localhost:8080/api/v1/pipelines/intake" \
-F "file=@contracts-2026.zip"
授權模式:免費可以用到什麼程度?
這是最容易被誤解的一點,講清楚:
- v0.46.0 之前:純 MIT 授權。
- v1.0.0 之後:改為 open-core。核心的 60+ PDF 工具維持 MIT,位於
app/proprietary/目錄下的企業功能改用專有的 Stirling PDF 授權。
| 功能 | 免費社群版 | 付費 Server/Enterprise |
|---|---|---|
| 60+ PDF 工具 | ✅ | ✅ |
| 使用者人數 | 無限制 | 無限制 |
| 資料庫 | 內建本機 H2 | 外部 PostgreSQL |
| SSO(SAML 2.0/OAuth2) | ❌ | ✅ |
| Google Drive File Picker | ❌ | ✅ |
| 稽核日誌(Audit Logging) | ❌ | ✅ |
| Prometheus 監控指標 | ❌ | ✅ |
| 優先技術支援 | ❌ | ✅ |
自架自用、公司內部使用(含商用)免費沒問題;但若你要把專有模組拿去包成 SaaS 對外賣,就得談商用授權。價格依方案與規模而異,官方走報價制。
⚠️ 社群爭議要知道:把 SSO 放在付費牆後面的做法,在 r/selfhosted 與 GitHub Discussions 上引起不少討論(被部分社群列入所謂的「SSO Wall of Shame」),也有人質疑這算不算真正的開源。如果你評估的重點是「企業級驗證整合要免費」,這是選型時的扣分項——但如果你只需要 PDF 工具本身,核心功能確實是 MIT 且完全免費。
已知限制與缺點
選工具要看缺點,這裡照實列:
- 記憶體佔用偏高:Java(Spring Boot)後端空閒時就要 500MB 以上,建議保留 2GB、上限給到 4GB。在 1GB RAM 的便宜 VPS 或樹莓派上會吃緊。
- 繁中 OCR 要自己裝語言包:預設沒有
chi_tra(見上一節)。這件事官方文件有寫,但很多人是 OCR 出亂碼才發現。 - 桌面版無法在本機做 OCR:官方文件明講 OCR 需要伺服器端後端,桌面 App 在純本機模式下不能 OCR,必須連到自架伺服器或雲端服務。
- 手機體驗普通:介面主要為桌面瀏覽器設計,小螢幕操作繁瑣,行動裝置建議只用來上傳掃描。
- 大型掃描檔仍吃 CPU:合併/分割已大幅優化,但 LibreOffice 轉檔與超大掃描檔 OCR 依然需要較高 CPU 與 RAM。
適合誰、不適合誰
| 你適合自架 Stirling PDF | 你可能不需要 |
|---|---|
| 常處理合約、標案、薪資單、客戶資料等敏感 PDF | 一年只轉兩次檔案,用線上免費工具就好 |
| 已經有 NAS/Proxmox/VPS 在跑其他服務 | 完全不想碰 Docker 與定期更新 |
| 想用 API 批次處理大量 PDF(例如自動化歸檔) | 只需要「簽名」一個功能,手機 App 更快 |
| 在意資料不離開內網、需要合規交代 | 你的檔案完全沒有敏感資訊 |
延伸閱讀
- Paperless-ngx 完整教學 2026 — Stirling PDF 是「處理」文件,Paperless-ngx 是「歸檔+檢索」文件,兩套搭起來是一條完整流水線。
- Docker 完整教學 2026 — 本文所有部署指令的基礎。
- Caddy 完整教學 2026 — 兩行設定就能幫 Stirling PDF 換上自動 HTTPS 與網域。
- Cloudflare Tunnel 完整教學 2026 — 不開防火牆 port,也能在外面安全存取自家 PDF 工具。
- Marker PDF 完整介紹 — 想把 PDF 轉成 Markdown 餵給 LLM,這是另一條更適合的路。
- 開源自架服務總整理 — 更多值得自架的服務清單。
資料來源
- Stirling PDF 官方網站:stirling.com
- 官方文件(Getting Started、Docker 安裝、OCR 語言包設定、Tool Reference):docs.stirlingpdf.com
- GitHub 專案與 README、Releases(v2.14.3,2026-08-06):github.com/Stirling-Tools/Stirling-PDF
- GitHub REST API 專案統計(stars/forks/created_at,2026-09-20 查詢)
- Tesseract 語言包來源:tessdata、tessdata_fast
- 授權變更討論:GitHub Discussion #4332
