一、项目简介
Stirling PDF是一款基于Web的开源PDF处理工具,提供40多项PDF处理功能。采用GNU Affero GPL v3.0许可证发布,所有功能完全免费,支持本地部署确保数据隐私安全。
1.1 核心特性
```markdown
- 文件处理:合并、拆分、旋转、缩放
- 页面操作:提取、删除、重新排列
- 格式转换:PDF转图片、图片转PDF
- 安全功能:加密、解密、数字签名
- 优化处理:压缩、OCR识别、元数据清理
- 水印添加:文本水印、图片水印
```
二、系统要求
2.1 硬件配置
```python
最低配置
minimum_requirements = {
"CPU": "2核",
"内存": "4GB",
"存储": "2GB可用空间",
"网络": "局域网即可"
}
推荐配置
recommended_requirements = {
"CPU": "4核",
"内存": "8GB",
"存储": "10GB可用空间",
"网络": "百兆以上"
}
```
2.2 软件依赖
```markdown
必需组件:
├── Docker (版本 20.10+)
├── Docker Compose (版本 2.0+)
└── Git (可选,用于源码构建)
可选组件:
├── Tesseract OCR (用于OCR功能)
├── Poppler (PDF渲染)
└── ImageMagick (图像处理)
```
三、部署方法
3.1 Docker部署(推荐)
```bash
拉取镜像
docker pull frooodle/s/pdf:latest
创建配置目录
mkdir -p ~/stirling-pdf/config
mkdir -p ~/stirling-pdf/logs
启动服务
docker run -d \
--name stirling-pdf \
-p 8080:8080 \
-v ~/stirling-pdf/config:/usr/share/tessdata \
-v ~/stirling-pdf/logs:/logs \
-e INSTALL_BOOKS_AND_ADVANCED_MD=true \
-e ENABLE_OCR=true \
frooodle/s-pdf:latest
访问服务
http://localhost:8080
```
3.2 Docker Compose部署
```yaml
docker-compose.yml
version: '3.8'
services:
stirling-pdf:
image: frooodle/s-pdf:latest
container_name: stirling-pdf
ports:
- "8080:8080"
volumes:
- ./config:/usr/share/tessdata
- ./logs:/logs
environment:
- LANGS=en_GB
- INSTALL_BOOKS_AND_ADVANCED_MD=true
- ENABLE_OCR=true
- DOCKER_ENABLE_SECURITY=false
restart: unless-stopped
```
```bash
启动服务
docker-compose up -d
查看日志
docker-compose logs -f
```
3.3 源码部署
```bash
克隆仓库
git clone https://github.com/Stirling-Tools/Stirling-PDF.git
cd Stirling-PDF
构建项目
./gradlew build
运行服务
java -jar build/libs/Stirling-PDF.jar
```
四、主要功能
4.1 文件操作
| 功能 | 说明 | 使用场景 |
|---|---|---|
| 合并PDF | 多个PDF合为一个 | 文档整合 |
| 拆分PDF | 按页或范围拆分 | 文档分割 |
| 旋转PDF | 调整页面方向 | 方向错误修正 |
| 缩放PDF | 调整页面大小 | 尺寸调整 |
4.2 格式转换
```python
支持的转换格式
supported_conversions = {
"PDF to Image": ["PNG", "JPG", "WEBP", "SVG"],
"Image to PDF": ["PNG", "JPG", "WEBP", "GIF"],
"PDF to Word": ["DOCX"],
"PDF to PowerPoint": ["PPTX"],
"PDF to Excel": ["XLSX"]
}
```
4.3 安全功能
```markdown
安全特性:
├── 加密PDF
│ ├── 用户密码保护
│ └── 权限密码设置
├── 解密PDF
│ ├── 移除密码保护
│ └── 恢复编辑权限
├── 数字签名
│ ├── 添加签名
│ └── 验证签名
└── 元数据清理
├── 删除作者信息
├── 删除创建时间
└── 删除修改记录
```
4.4 OCR功能
```python
OCR配置
ocr_config = {
"语言包": ["chi_sim", "eng", "jpn"],
"识别引擎": "Tesseract 5.3",
"支持格式": ["扫描件PDF", "图片PDF"],
"输出格式": ["可搜索PDF", "TXT"]
}
使用示例
result = stirling_pdf.ocr(
input_file="scan.pdf",
languages=["chi_sim", "eng"],
output_format="searchable_pdf"
)
```
五、API接口
5.1 REST API
```python
import requests
合并PDF
def merge_pdfs(files, output_filename):
url = "http://localhost:8080/merge"
files = [('files', open(f, 'rb')) for f in files]
response = requests.post(url, files=files)
with open(output_filename, 'wb') as f: f.write(response.content) return response.status_code
压缩PDF
def compress_pdf(input_file, quality):
url = "http://localhost:8080/compress"
with open(input_file, 'rb') as f:
response = requests.post(url,
files={'file': f},
params={'quality': quality}
)
return response
```
5.2 Webhook集成
```markdown
Webhook配置:
- 触发时机:任务完成后
- 回调地址:自定义URL
- 数据格式:JSON
- 认证方式:Bearer Token
配置步骤:
1. 进入系统设置
2. 找到Webhook配置
3. 填写回调地址
4. 设置认证Token
5. 启用Webhook
```
六、实际应用案例
6.1 企业文档处理
```python
自动化文档处理流程
class DocumentProcessor:
def init(self, api_url):
self.api_url = api_url
def process_batch(self, files: List[str]): results = [] for file in files: # 压缩 compressed = self.compress(file) # OCR ocr_result = self.ocr(compressed) # 合并 merged = self.merge([ocr_result]) results.append(merged) return results
```
6.2 个人使用场景
| 场景 | 功能组合 | 效果 |
|---|---|---|
| 扫描件归档 | OCR + 压缩 | 节省空间+可搜索 |
| 合同管理 | 拆分 + 加密 | 安全存储 |
| 报告整合 | 合并 + 旋转 | 统一格式 |
| 简历制作 | PDF转图片 | 防止篡改 |
七、性能优化
7.1 配置调优
```python
性能优化配置
performance_config = {
"并发处理": 5,
"单文件限制": "100MB",
"超时时间": 300,
"缓存大小": "512MB",
"日志级别": "INFO"
}
```
7.2 资源监控
```bash
监控容器资源使用
docker stats stirling-pdf
查看日志
docker logs -f stirling-pdf
检查磁盘空间
df -h /path/to/stirling-pdf
```
八、安全建议
8.1 部署安全
```markdown
安全部署要点:
├── 网络隔离
│ ├── 仅内网访问
│ └── 防火墙限制
├── 身份认证
│ ├── 启用登录功能
│ └── 强密码策略
├── 数据加密
│ ├── 传输层TLS
│ └── 存储加密
└── 定期更新
├── 安全补丁
└── 版本升级
```
8.2 使用安全
```python
安全使用建议
security_tips = [
"定期备份配置文件",
"及时清理临时文件",
"监控异常访问",
"设置文件上传限制",
"启用操作日志审计"
]
```
九、总结
Stirling PDF为企业和个人提供了强大的本地化PDF处理能力,完全免费且开源。通过合理的部署配置和安全管理,可以构建安全可靠的PDF处理平台。建议优先采用Docker部署方式,便于管理和维护。