Stirling-PDF:强大的本地托管PDF工具箱(含Docker部署教程)
Stirling-PDF:强大的本地托管PDF工具箱
一、项目简介
1.1 什么是Stirling-PDF?
Stirling-PDF是一个强大的本地托管PDF工具箱,它可以帮助你对PDF文件进行各种操作,如合并、拆分、压缩、转换格式等。这是一个开源项目,托管在GitHub上,完全免费使用。
Stirling-PDF的核心特点:
- ✅ 完全本地化 - 所有处理都在本地进行,不会上传文件到第三方服务器
- ✅ 隐私安全 - 适合处理敏感文档
- ✅ 功能丰富 - 提供30+种PDF处理功能
- ✅ 易于部署 - 支持Docker部署
- ✅ 免费开源 - Apache 2.0许可证
- ✅ 界面美观 - 提供现代Web界面
1.2 官方网站和仓库
| 资源 | 地址 |
|---|---|
| GitHub仓库 | https://github.com/Stirling-Tools/Stirling-PDF |
| 官方网站 | https://stirlingpdf.io |
| Docker Hub | https://hub.docker.com/r/stirlingtools/stirling-pdf |
1.3 功能特性
Stirling-PDF提供了丰富的PDF处理功能:
| 分类 | 功能 |
|---|---|
| **PDF操作** | 合并、拆分、旋转、重新排序 |
| **转换** | PDF与图片互转、PDF转Word/Excel |
| **压缩** | 优化PDF大小 |
| **安全** | 添加水印、加密、解密、签名 |
| **编辑** | 添加/删除页面、提取页面、裁剪 |
| **OCR** | 光学字符识别 |
| **修复** | 修复损坏的PDF |
| **元数据** | 编辑PDF元数据 |
| **比较** | 比较两个PDF文件 |
| **签署** | PDF签名工具 |
二、技术架构
2.1 技术栈
Stirling-PDF采用现代化技术栈:
- 后端:Java + Spring Boot
- 前端:Thymeleaf模板引擎
- PDF处理:Apache PDFBox、LibreOffice
- OCR:Tesseract
- 部署:Docker、Docker Compose
- 数据库:嵌入式数据库(默认)
2.2 系统要求
最低配置:
- CPU:1核心
- 内存:512MB
- 磁盘:1GB
- CPU:2核心以上
- 内存:2GB以上
- 磁盘:5GB以上
- Linux(推荐)
- macOS
- Windows
- NAS系统(Synology、QNAP等)
推荐配置:
支持的操作系统:
三、快速部署
3.1 Docker部署(推荐)
#### 3.1.1 使用Docker Compose部署
创建 docker-compose.yml 文件:
version: '3.3'
services:
stirling-pdf:
image: stirlingtools/stirling-pdf:latest
container_name: stirling-pdf
ports:
- "8080:8080"
environment:
- TZ=Asia/Shanghai
- PUID=1000
- PGID=1000
- STIRRING_PDF_UI_NAME=Stirling-PDF
volumes:
- ./data:/usr/share/tomcat9/webapps/ROOT/WEB-INF/classes
restart: unless-stopped
启动服务:
# 启动
docker compose up -d
# 查看日志
docker compose logs -f stirling-pdf
# 停止服务
docker compose down
#### 3.1.2 使用Docker命令部署
# 创建数据目录
mkdir -p ~/stirling-pdf/data
# 运行容器
docker run -d --name stirling-pdf -p 8080:8080 -v ~/stirling-pdf/data:/usr/share/tomcat9/webapps/ROOT/WEB-INF/classes -e TZ=Asia/Shanghai -e PUID=1000 -e PGID=1000 stirlingtools/stirling-pdf:latest
#### 3.1.3 配置国内镜像加速
如果Docker拉取镜像慢,可以配置镜像加速器:
// /etc/docker/daemon.json
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com"
]
}
然后重启Docker:
sudo systemctl daemon-reload
sudo systemctl restart docker
3.2 Docker标签说明
Stirling-PDF提供多个Docker标签:
| 标签 | 说明 | 大小 |
|---|---|---|
| `latest` | 最新版本 | ~800MB |
| `full` | 完整版,包含所有功能 | ~1GB |
| `latest-german` | 包含德语支持 | ~800MB |
3.3 验证部署
部署完成后,访问:
- 地址:http://localhost:8080
- 界面语言:自动检测,或在设置中切换
四、功能详解
4.1 常用功能
#### 4.1.1 合并PDF
将多个PDF文件合并为一个文件:
1. 打开Stirling-PDF界面 2. 选择「合并PDF」功能 3. 上传多个PDF文件 4. 调整文件顺序 5. 点击「合并」按钮 6. 下载合并后的PDF
# Docker环境下的使用
# 直接在Web界面操作即可
#### 4.1.2 拆分PDF
将PDF文件拆分成多个文件:
1. 选择「拆分PDF」功能 2. 上传PDF文件 3. 选择拆分方式: - 按页面拆分 - 按范围拆分 4. 点击「拆分」按钮 5. 下载拆分后的文件
#### 4.1.3 压缩PDF
减小PDF文件大小:
1. 选择「压缩PDF」功能 2. 上传PDF文件 3. 选择压缩级别: - 低压缩率(高质量) - 中等压缩率 - 高压缩率(低质量) 4. 点击「压缩」按钮 5. 下载压缩后的PDF
#### 4.1.4 PDF转图片
将PDF转换为图片:
1. 选择「PDF转图片」功能 2. 上传PDF文件 3. 设置参数: - 图片格式(JPG、PNG) - 分辨率 - 每页一张图或合并为一张 4. 点击「转换」按钮 5. 下载图片文件
4.2 安全功能
#### 4.2.1 添加水印
为PDF添加文本或图片水印:
1. 选择「添加水印」功能 2. 上传PDF文件 3. 设置水印内容: - 文本水印(可自定义文字、字体、颜色) - 图片水印(上传图片作为水印) 4. 设置水印位置和透明度 5. 点击「添加水印」按钮
#### 4.2.2 加密和解密
保护PDF文件:
加密PDF:
1. 选择「加密PDF」功能 2. 上传PDF文件 3. 设置密码 4. 设置权限限制(打印、复制等) 5. 点击「加密」按钮
解密PDF:
1. 选择「解密PDF」功能 2. 上传PDF文件 3. 输入密码 4. 点击「解密」按钮
#### 4.2.3 PDF签名
为PDF添加数字签名:
1. 选择「签名工具」功能 2. 上传PDF文件 3. 创建签名: - 手写签名(使用鼠标或触屏) - 上传签名图片 4. 放置签名位置 5. 点击「签署」按钮
4.3 OCR功能
#### 4.3.1 OCR识别
对扫描版PDF进行文字识别:
1. 选择「OCR」功能 2. 上传PDF文件 3. 选择语言 4. 点击「开始OCR」按钮 5. 下载可搜索的PDF
支持的OCR语言:
- 英语、中文、日语、韩语
- 法语、德语、西班牙语
- 俄语、阿拉伯语等
4.4 其他实用功能
#### 4.4.1 PDF比较
比较两个PDF文件的差异:
1. 选择「比较PDF」功能 2. 上传两个PDF文件 3. 点击「比较」按钮 4. 查看差异报告
#### 4.4.2 元数据编辑
修改PDF的元数据信息:
1. 选择「编辑元数据」功能 2. 上传PDF文件 3. 编辑元数据: - 标题 - 作者 - 主题 - 关键词 - 创建日期 4. 点击「保存」按钮
#### 4.4.3 图片转PDF
将图片转换为PDF:
1. 选择「图片转PDF」功能 2. 上传多张图片 3. 调整图片顺序 4. 设置页面大小和方向 5. 点击「转换为PDF」按钮
五、配置文件说明
5.1 配置目录结构
stirling-pdf/
├── data/
│ ├── settings.yml # 主配置文件
│ ├── customSettings.yml # 自定义设置
│ ├── logs/ # 日志文件
│ └── extractedTexts/ # 提取的文本
5.2 主配置文件
创建 data/settings.yml 文件:
# Stirling-PDF 配置文件
# 应用设置
app:
name: Stirling-PDF
host: 0.0.0.0
port: 8080
context-path: /
# 地区设置
locale:
default: zh_CN
supported:
- en_US
- zh_CN
- de_DE
- fr_FR
# 功能开关
features:
enable-ocr: true
enable-watermark: true
enable-encryption: true
enable-signature: true
enable-compare: true
# 安全设置
security:
enable-login: false
session-timeout: 3600
# 文件处理
file:
upload-dir: ./data/uploads
output-dir: ./data/outputs
max-file-size: 100MB
max-request-size: 100MB
# 日志设置
logging:
level: INFO
file: ./data/logs/app.log
5.3 自定义设置
创建 data/customSettings.yml:
# 自定义设置
# 是否显示高级选项
show-advanced-options: true
# 默认语言
default-language: zh_CN
# 自动清理临时文件
auto-cleanup: true
cleanup-interval: 3600
cleanup-max-age: 86400
# OCR设置
ocr:
enabled: true
languages:
- eng
- chi_sim
timeout: 300
# 水印默认设置
watermark:
default-text: Confidential
default-opacity: 0.3
default-font-size: 48
六、Docker环境变量
| 环境变量 | 说明 | 默认值 |
|---|---|---|
| `TZ` | 时区 | UTC |
| `PUID` | 用户ID | 1000 |
| `PGID` | 用户组ID | 1000 |
| `STIRRING_PDF_UI_NAME` | 界面名称 | Stirling-PDF |
| `JAVA_OPTS` | Java参数 | -Xmx512m |
七、故障排除
7.1 容器无法启动
问题:Docker容器启动失败
解决方法:
# 查看详细错误日志
docker logs stirling-pdf
# 检查端口是否被占用
sudo netstat -tlnp | grep 8080
# 解决方法
# 1. 更改映射端口
# 2. 停止占用端口的进程
7.2 OCR功能不可用
问题:OCR功能显示灰色或无法使用
解决方法:
# 检查是否启用了OCR
# 在docker-compose.yml中添加:
environment:
- ENABLE_OCR=true
# 重启容器
docker compose restart stirling-pdf
7.3 中文字体显示问题
问题:PDF中的中文字符显示为方框
解决方法:
# 安装中文字体
docker exec -it stirling-pdf apt-get update
docker exec -it stirling-pdf apt-get install -y fonts-wqy-zenhei
# 或者使用自定义字体目录
volumes:
- /path/to/fonts:/usr/share/fonts/custom:ro
7.4 文件上传大小限制
问题:上传大文件时失败
解决方法:
# 修改docker-compose.yml
environment:
- SPRING_SERVLET_MAX_REQUEST_SIZE=100MB
- SPRING_SERVLET_MAX_FILE_SIZE=100MB
7.5 内存不足
问题:处理大文件时内存溢出
解决方法:
# 增加Java内存限制
environment:
- JAVA_OPTS=-Xmx2g -Xms512m
八、性能优化
8.1 内存优化
# docker-compose.yml
environment:
- JAVA_OPTS=-Xmx1g -Xms256m -XX:+UseG1GC
8.2 并发优化
# 配置Tomcat线程
environment:
- SERVER_TOMCAT_MAX_THREADS=200
- SERVER_TOMCAT_ACCEPT_COUNT=100
8.3 文件清理策略
# 设置定时任务自动清理
crontab -e
# 每天凌晨2点清理临时文件
0 2 * * * find /path/to/data -type f -mtime +1 -delete
九、与同类工具对比
| 工具 | 类型 | 费用 | 隐私性 | 部署方式 | 特点 |
|---|---|---|---|---|---|
| **Stirling-PDF** | 本地部署 | 免费 | ⭐⭐⭐⭐⭐ | Docker | 功能丰富,隐私安全 |
| **Adobe Acrobat** | 本地软件 | 付费 | ⭐⭐⭐⭐ | 桌面应用 | 功能最全 |
| **Smallpdf** | 在线服务 | 免费/付费 | ⭐⭐ | Web | 界面友好,需上传文件 |
| **iLovePDF** | 在线服务 | 免费/付费 | ⭐⭐ | Web | 界面美观,需上传文件 |
| **PDF24 Tools** | 在线服务 | 免费 | ⭐⭐ | Web | 功能全面,需上传文件 |
十、总结
10.1 优点总结
- ✅ 完全免费开源
- ✅ 本地部署,隐私安全
- ✅ 功能丰富(30+功能)
- ✅ Docker部署,简单便捷
- ✅ 界面美观,操作简单
- ✅ 持续更新维护
- ✅ 支持Docker Compose
- ✅ 多语言支持
10.2 适用场景
Stirling-PDF适用于:
1. 企业办公 - 处理日常PDF文档 2. 法律行业 - 处理敏感法律文件 3. 教育行业 - 处理教学材料 4. 个人使用 - PDF格式转换和编辑 5. 开发者 - PDF处理功能集成
10.3 相关资源
| 资源 | 地址 |
|---|---|
| GitHub仓库 | https://github.com/Stirling-Tools/Stirling-PDF |
| Docker Hub | https://hub.docker.com/r/stirlingtools/stirling-pdf |
| 官方文档 | https://docs.stirling-pdf.io |
| 在线演示 | https://demo.stirling-pdf.io |
| 问题反馈 | https://github.com/Stirling-Tools/Stirling-PDF/issues |
10.4 未来展望
Stirling-PDF作为一个活跃的开源项目,持续在:
- 🔧 优化现有功能
- 🌍 增加更多语言支持
- 🤖 集成AI功能(如智能OCR)
- 📱 支持移动端
- 🔌 提供API接口
相关推荐:
- [Docker安装配置完整指南](/docker-install-guide)
- [Docker Compose进阶用法](/docker-compose-advanced)
- [PDF处理工具推荐](/pdf-tools-comparison)
参考阅读:
- [Stirling-PDF官方文档](https://docs.stirling-pdf.io)
- [GitHub项目仓库](https://github.com/Stirling-Tools/Stirling-PDF)
- [Docker官方文档](https://docs.docker.com)







