
“如果你有浏览器,就能拥有一整套 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-pdfCode 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:latestCode 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-stoppedCode language: YAML (yaml)
启动:
docker compose up -dCode 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"
doneCode language: Bash (bash)
然后:
chmod +x ~/stirling-pdf/pipeline/batch.sh
docker exec -it stirling-pdf /pipeline/batch.shCode 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: 50MBCode language: YAML (yaml)
重启容器生效。
Q3:如何启用暗黑模式?
A:界面右上角有“月亮”图标,一键切换。
结语
Stirling-PDF 把几乎所有 PDF 需求打包进了一个 2 GB 的容器里,真正做到“装完即用,用完即走”。如果你厌倦了在 SaaS 平台反复登录、担心隐私泄露,或者想给团队/家庭搭一个私有的 PDF 工厂,今天就把 Stirling-PDF 跑起来吧!
本文所有命令已在 Ubuntu 22.04 + Docker 24.0 环境实测无误,复制即可用。如有疑问,欢迎留言交流。
了解 Hana - 探索有趣的世界 的更多信息
订阅后即可通过电子邮件收到最新文章。

暂无评论