網路上有一堆線上PDF轉檔工具,只要上傳檔案就會吐出處理好的檔案讓你下載,可是有隱私資安的疑慮。那麼你有沒有想過自己架設一個PDF處理服務呢?
以Ivon的使用例來說,有時臨時想在iPad轉檔PDF文件,雖然市面上有很多APP能辦到,但是我想要使用自由開源的方案,那麼就只剩網頁處理的路子了。為追求開源軟體,以及確保隱私不讓PDF文件被其他網站濫用,我就找到了「Stirling PDF」,這款簡單易用的網頁PDF轉檔工具。
把Stirling PDF架在個人Linux伺服器或者NAS,就能夠透過瀏覽器遠端處理PDF文件了。
根據Stirling PDF的開發者在Product Hunt的頁面,他們說想解決依賴線上PDF處理服務的問題,不想使用可疑網站提供的轉檔服務,所以開發了這個大滿貫軟體,一次滿足所有需求。
Striling PDF功能為何?合併PDF、分割PDF、調整PDF對比度、PDF新增浮水印、批次PDF重新命名、OCR抽取PDF文字、PDF轉圖片、PDF轉Word、圖片轉PDF的功能樣樣有。還可以自訂pipeline,使用固定程序處理大量的PDF。
就像你在網路上看到的那些線上PDF轉檔工具一樣,Stirling PDF的設計宗旨就是簡單易用,一個頁面一個功能。基本上只要上傳檔案,勾你要處理的選項,它就會自動完成作業,然後吐出檔案讓你下載。
Ivon認為Stirling PDF適合搭配同為自架服務的Nextcloud和Paperless使用,一同為無紙化的辦公室工作流努力~
1. Striling PDF的安裝方式#
詳細使用說明請參閱開發者的Github。
Stirling PDF是用Java寫的,集合了許多開源專案的PDF處理工具。
開發者提供封裝好的桌面版,請到Github Releases下載。Windows下載exe,點二下開啟即會自動開啟界面。
Linux建議用Docker部署,比較好管理,也方便遠端存取:
- 新增docker-compose.yml
mkdir ~/stirlingpdf
cd ~/stirlingpdf
vim docker-compose.yml
- 填入以下內容:
version: '3.3'
services:
stirling-pdf:
image: stirlingtools/stirling-pdf:latest
ports:
- '8080:8080' # 暴露的通訊埠
volumes:
- ./trainingData:/usr/share/tessdata # OCR套件位置
- ./extraConfigs:/configs # 設定檔
environment:
- DOCKER_ENABLE_SECURITY=false
- INSTALL_BOOK_AND_ADVANCED_HTML_OPS=true # 安裝全部功能
- LANGS=zh_TW # 界面語言
- 啟動容器服務。在瀏覽器開啟
http://127.0.0.1:8080
進入網頁界面。
docker compose up -d
- 若要讓網頁界面從外部網路存取,請使用內網穿透方案。
2. Striling PDF使用教學#
這…功能太多了,講不完啊XD
基本上首頁的選單就說明了每個頁面的功能,準備好PDF文件,點進去依照畫面指示操作就好。
值得一提的是「PDF複合」功能,它能夠上傳多份PDF文件,並在網頁界面重排頁面順序,再合併輸出為新PDF文件。
還有這個管道功能,它能夠依照你定義的一系列操作,批次處理每個上傳的PDF文件。例如設定先合併PDF,裁剪文件,再加上簽名,最後輸出。
3. Striling PDF啟用中文OCR#
Striling PDF的OCR功能可以讓PDF文件內的手寫文字變成能夠選取的框框。
Striling PDF依賴Tesseract進行OCR。如果使用Docker部署,請到tessdata的Github下載.traindata檔案,放到docker-compose.yml所在目錄的trainingData
裡面。
例如我要辨識正體中文和英文,那麼trainingData
目錄下應該會有這些檔案:
.
└── trainingData
├── chi_tra.traineddata
├── chi_tra_vert.traineddata
├── eng.traineddata
然後在工具 → 檢視 → OCR,勾選要辨識別的語言,上傳檔案,稍待一會,吐出處理過的PDF文件。