【Docker项目实战篇】Docker部署PDF多功能工具Stirling-PDF
前言
一、Stirling-PDF介绍
1.1 Stirling-PDF简介
1.2 Stirling-PDF功能
功能分类 | 功能说明 |
---|
页面操作 | 查看和修改PDF:使用PDF.js与Joxit及Liberation字体,支持多页PDF浏览、自定义排序、搜索以及页面注释、绘图、添加文字和图片功能。 |
| 全交互式GUI:用于合并、拆分、旋转、移动PDF及其页面。 |
| 合并PDF:将多个PDF合并成单个文件。 |
| 拆分PDF:按指定页码拆分为多个文件或提取所有页面为独立文件。 |
| 重新组织页面顺序。 |
| 旋转PDF:以90度为单位旋转。 |
| 删除页面。 |
| 多页布局:将PDF格式化为多页页面。 |
| 缩放页面内容大小。 |
| 调整对比度。 |
| 裁剪PDF。 |
| 自动拆分扫描的PDF(基于物理分隔)。 |
| 提取页面。 |
| 将PDF转换为单页。 |
转换操作 | PDF与图片互转。 |
| 常见文件转换为PDF(使用LibreOffice)。 |
| PDF转换为Word/PPT/其他格式(使用LibreOffice)。 |
| HTML转PDF。 |
| URL转PDF。 |
| Markdown转PDF。 |
安全与权限 | 添加/移除密码。 |
| 更改/设置PDF权限。 |
| 添加水印。 |
| 签名/认证PDF。 |
| 清理PDF。 |
| 自动屏蔽敏感文字。 |
其他操作 | 添加/生成/编写签名。 |
| 修复PDF。 |
| 检测并移除空白页。 |
| 比较两个PDF并显示文本差异。 |
| 向PDF中添加图片。 |
| 压缩PDF以减小文件大小(使用OCRMyPDF)。 |
| 从PDF中提取图片。 |
| 从扫描件中提取图片。 |
| 添加页码。 |
| 根据PDF头部文本自动重命名文件。 |
| 对PDF进行OCR处理(使用OCRMyPDF)。 |
| 转换为PDF/A标准(使用OCRMyPDF)。 |
| 编辑元数据。 |
| 扁平化PDF。 |
| 获取PDF所有信息,可查看或导出为JSON。 |
二、本次实践规划
2.1 本地环境规划
hostname | IP地址 | 操作系统版本 | Docker版本 | Stirling-PDF版本 |
---|
ubuntu-docker | 192.168.3.86 | Ubuntu 22.04.1 LTS | 24.0.7 | 0.26.1 |
2.2 本次实践介绍
三、本地环境检查
3.1 检查Docker服务状态
root@ubuntu-docker:~
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2024-06-21 16:45:29 UTC; 9h ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 3625 (dockerd)
Tasks: 12
Memory: 26.0M
CPU: 3.367s
CGroup: /system.slice/docker.service
3.2 检查Docker版本
root@ubuntu-docker:~
Docker version 24.0.7, build 24.0.7-0ubuntu2~22.04.1
3.3 检查docker compose 版本
root@ubuntu-docker:~
Docker Compose version v2.19.1
四、下载Stirling-PDF镜像
root@ubuntu-docker:~
0.26.1-fat: Pulling from jeson/s-pdf
d25f557d7f31: Pull complete
c1f8f1be6b13: Pull complete
1f66901a7ce5: Pull complete
64608eef7b1e: Pull complete
b3900a49ca85: Pull complete
cea40baf48ce: Pull complete
Digest: sha256:67ee927cc5b499e32164c25cad5197e9226ced31d319282a7a346b912063909c
Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/jeson/s-pdf:0.26.1-fat
registry.cn-hangzhou.aliyuncs.com/jeson/s-pdf:0.26.1-fat
五、部署Stirling-PDF
5.1 创建部署目录
mkdir -p /data/s-pdf && cd /data/s-pdf
5.2 编辑部署文件
version: '3.9'
services:
stirling-pdf:
image: registry.cn-hangzhou.aliyuncs.com/jeson/s-pdf:0.26.1-fat
container_name: Stirling-PDF
ports:
- '6080:8080'
volumes:
- /data/s-pdf/trainingData:/usr/share/tessdata
- /data/s-pdf/extraConfigs:/configs
- /data/s-pdf/customFiles:/customFiles/
- /data/s-pdf/logs:/logs/
environment:
DOCKER_ENABLE_SECURITY: true
SECURITY_ENABLELOGIN: true
SECURITY_INITIALLOGIN_USERNAME: jeven
SECURITY_INITIALLOGIN_PASSWORD: jeven
UI_APPNAME: jeven-PDF
INSTALL_BOOK_AND_ADVANCED_HTML_OPS: false
LANGS: zh_CN
5.3 创建Stirling-PDF容器
root@ubuntu-docker:/data/s-pdf
[+] Running 2/2
✔ Network s-pdf_default Created 0.0s
✔ Container Stirling-PDF Started 0.3s
5.4 查看Stirling-PDF容器状态
[root@ubuntu-docker:/data/s-pdf
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
Stirling-PDF registry.cn-hangzhou.aliyuncs.com/jeson/s-pdf:0.26.1-fat "tini -- /scripts/in…" stirling-pdf 58 seconds ago Up 57 seconds 0.0.0.0:6080->8080/tcp, :::6080->8080/tcp
5.5 查看Stirling-PDF容器日志
docker compose logs

六、访问PDF多功能工具Stirling-PDF
6.1 访问Stirling-PDF首页

6.2 设置系统中文


七、Stirling-PDF工具的基本使用
7.1 将word文档转换为PDF文档




7.2 PDF转换为word




八、总结