【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:~# systemctl status 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 -v
docker version 24.0.7, build 24.0.7-0ubuntu2~22.04.1
3.3 检查docker compose 版本
root@ubuntu-docker:~# docker compose version
docker compose version v2.19.1
四、下载stirling-pdf镜像
root@ubuntu-docker:~# docker pull registry.cn-hangzhou.aliyuncs.com/jeson/s-pdf:0.26.1-fat
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 # ocr 语言支持
- /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 # stirling-pdf登录账号
security_initiallogin_password: jeven # stirling-pdf登录密码
ui_appname: jeven-pdf # 自定义导航标题
install_book_and_advanced_html_ops: false
langs: zh_cn # 设置语言
5.3 创建stirling-pdf容器
root@ubuntu-docker:/data/s-pdf# docker compose up -d
[+] 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# docker compose ps
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
发表评论