
“如果你有浏览器,就能拥有一整套 PDF 工厂。”
为什么会爱上 Stirling-PDF?
- 全功能:合并、拆分、旋转、压缩、加水印、OCR、密码保护……你能想到的 PDF 操作它几乎都支持。
- 零依赖:纯浏览器即可操作,无需 Office、Adobe 全家桶。
- 多端可用:PC、Mac、Linux、树莓派,甚至 NAS 都能跑。
- 开源可商用:MIT 许可证,可放心内网部署。
- 体积瘦身:官方提供“精简版”“标准版”“完整版”三种镜像,低配机器也能流畅运行。
一句话:用 Stirling-PDF,你就拥有了一个私有、安全、免费的在线 PDF 工作站。
为什么我会推荐这样一款工具呢?
我自己其实也有很多类似的PDF编辑的需求,在网上找了很多,要么是收费的,要么广告多的要命,最近逛小红书的时候无意中发现有人在推荐这样一款工具,我觉得非常有必要跟大家分享一下
一分钟速览:官方三种镜像怎么选?
镜像 Tag | 体积 | OCR 支持 | 额外功能 | 适用场景 |
---|---|---|---|---|
latest (完整版) | ≈2 GB | ✅ | ✅ | 主力服务器、桌面 |
ultralite (精简版) | ≈400 MB | ❌ | ❌ | 树莓派、NAS、低内存 VPS |
fat (标准版) | ≈1 GB | ✅ | ❌ | 需要 OCR 但磁盘吃紧 |
本文示例以 完整版 为例,其他版本只需把命令里的
latest
换成对应 tag 即可,非常推荐NAS玩家使用体验
手把手 5 步部署(Docker 方式)
假设你有一台可联网的 Linux 主机(Ubuntu 22.04/Debian 12/CentOS 9 均可),已装 Docker & Docker Compose。
第 1 步:准备目录结构
mkdir -p ~/stirling-pdf/{trainingData,extraConfigs,customFiles,logs,pipeline}
cd ~/stirling-pdf
Code language: Bash (bash)
trainingData
:OCR 语言包(Tesseract 训练数据)。extraConfigs
:放置自定义配置文件。customFiles
:上传自定义字体、水印图等。logs
:日志持久化,方便排查问题。pipeline
:批处理脚本或自定义流水线。
第 2 步:一键启动(推荐方式)
方案 A:直接 docker run
(最快)
docker run -d \
--name stirling-pdf \
-p 8080:8080 \
-v "$PWD/trainingData:/usr/share/tessdata" \
-v "$PWD/extraConfigs:/configs" \
-v "$PWD/customFiles:/customFiles" \
-v "$PWD/logs:/logs" \
-v "$PWD/pipeline:/pipeline" \
-e DISABLE_ADDITIONAL_FEATURES=false \
-e LANGS=en_GB,zh_CN \
--restart unless-stopped \
docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest
Code language: Bash (bash)
方案 B:Docker Compose(更易维护)
新建 docker-compose.yml
:
version: '3.9'
services:
stirling-pdf:
image: docker.stirlingpdf.com/stirlingtools/stirling-pdf:latest
container_name: stirling-pdf
ports:
- "8080:8080"
volumes:
- ./trainingData:/usr/share/tessdata
- ./extraConfigs:/configs
- ./customFiles:/customFiles
- ./logs:/logs
- ./pipeline:/pipeline
environment:
- DISABLE_ADDITIONAL_FEATURES=false
- LANGS=en_GB,zh_CN
restart: unless-stopped
Code language: YAML (yaml)
启动:
docker compose up -d
Code language: Bash (bash)
第 3 步:验证服务
浏览器打开 http://<服务器IP>:8080
,看到如下界面即成功:
第 4 步:可选优化
- 反向代理 + HTTPS
使用 Nginx Proxy Manager 或 Caddy,把 8080 映射到pdf.example.com
,并自动申请 Let's Encrypt 证书。 - 语言包加速
若 OCR 需识别中文、日文等多语言,把对应*.traineddata
下载到trainingData
目录即可。
官方地址:https://github.com/tesseract-ocr/tessdata - 批处理脚本示例
在pipeline
目录放一个batch.sh
:
#!/bin/bash
# 压缩当前目录下所有 PDF
for f in *.pdf; do
curl -F "file=@$f" -F "compressionLevel=3" \
http://localhost:8080/api/v1/compress > "compressed_$f"
done
Code language: Bash (bash)
然后:
chmod +x ~/stirling-pdf/pipeline/batch.sh
docker exec -it stirling-pdf /pipeline/batch.sh
Code language: Bash (bash)
- 备份与迁移
整个~/stirling-pdf
目录打包即可,新机器解压后docker compose up -d
秒级恢复。
常见问题 FAQ
Q1:8080 端口被占用怎么办?
A:-p 3000:8080
改成你喜欢的端口即可,或者通过反向代理隐藏端口。
Q2:如何限制访客上传超大文件?
A:在 extraConfigs
里新建 application.yml
,加入:
spring:
servlet:
multipart:
max-file-size: 50MB
max-request-size: 50MB
Code language: YAML (yaml)
重启容器生效。
Q3:如何启用暗黑模式?
A:界面右上角有“月亮”图标,一键切换。
结语
Stirling-PDF 把几乎所有 PDF 需求打包进了一个 2 GB 的容器里,真正做到“装完即用,用完即走”。如果你厌倦了在 SaaS 平台反复登录、担心隐私泄露,或者想给团队/家庭搭一个私有的 PDF 工厂,今天就把 Stirling-PDF 跑起来吧!
本文所有命令已在 Ubuntu 22.04 + Docker 24.0 环境实测无误,复制即可用。如有疑问,欢迎留言交流。
暂无评论