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)

发表回复

后才能评论