【Docker项目实战篇】Docker部署PDF多功能工具Stirling-PDF

news2024/11/16 22:35:54

【Docker项目实战篇】Docker部署PDF多功能工具Stirling-PDF

  • 前言
  • 一、Stirling-PDF介绍
    • 1.1 Stirling-PDF简介
    • 1.2 Stirling-PDF功能
  • 二、本次实践规划
    • 2.1 本地环境规划
    • 2.2 本次实践介绍
  • 三、本地环境检查
    • 3.1 检查Docker服务状态
    • 3.2 检查Docker版本
    • 3.3 检查docker compose 版本
  • 四、下载Stirling-PDF镜像
  • 五、部署Stirling-PDF
    • 5.1 创建部署目录
    • 5.2 编辑部署文件
    • 5.3 创建Stirling-PDF容器
    • 5.4 查看Stirling-PDF容器状态
    • 5.5 查看Stirling-PDF容器日志
  • 六、访问PDF多功能工具Stirling-PDF
    • 6.1 访问Stirling-PDF首页
    • 6.2 设置系统中文
  • 七、Stirling-PDF工具的基本使用
    • 7.1 将word文档转换为PDF文档
    • 7.2 PDF转换为word
  • 八、总结

前言

之前使用Docker部署过Stirling-PDF项目,当时的版本为0.22.2,其中部分功能使用起来可能存在bug。现在该项目已经更新到了0.26.1版本,部分bug得到修复,同时Stirling-PDF界面有了较大变化,更加的美观,现在来体验一下新版本以及功能。

一、Stirling-PDF介绍

1.1 Stirling-PDF简介

Stirling-PDF:这是一个使用 Docker 的强大的、本地托管的基于 Web 的 PDF 操作工具。它使您能够对 PDF 文件执行各种操作,包括拆分、合并、转换、重新组织、添加图像、旋转、压缩等。这个本地托管的 Web 应用程序已经发展到包含一套全面的功能,可以满足您的所有 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 本地环境规划

本次实践为个人测试环境,操作系统版本为centos7.6。

hostnameIP地址操作系统版本Docker版本Stirling-PDF版本
ubuntu-docker192.168.3.86Ubuntu 22.04.1 LTS24.0.70.26.1

2.2 本次实践介绍

1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署PDF多功能工具Stirling-PDF。

三、本地环境检查

3.1 检查Docker服务状态

检查Docker服务是否正常运行,确保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版本

检查Docker版本

root@ubuntu-docker:~# docker  -v
Docker version 24.0.7, build 24.0.7-0ubuntu2~22.04.1

3.3 检查docker compose 版本

检查Docker compose版本,确保2.0以上版本。

root@ubuntu-docker:~#  docker compose version
Docker Compose version v2.19.1

四、下载Stirling-PDF镜像

使用本人的阿里云私人镜像仓库下载Stirling-PDF镜像registry.cn-hangzhou.aliyuncs.com/jeson/s-pdf:0.26.1-fat

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 编辑部署文件

/data/s-pdf目录,创建docker-compose.yaml文件,内容如下,其中宿主机映射端口、登录账号密码等可以自定义配置。

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容器

执行以下命令,创建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容器状态

检查tirling-PDF容器状态状态,确保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容器日志

检查Stirling-PDF容器日志,确保Stirling-PDF服务正常运行。

docker compose logs

在这里插入图片描述

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

6.1 访问Stirling-PDF首页

访问地址:http://192.168.3.86:6080,将IP替换为自己服务器IP地址。如果无法访问到以下页面,则检查宿主机的防火墙是否关闭或者放行相关端口,云服务器则还需要设置安全组规则。

在这里插入图片描述

6.2 设置系统中文

在登录页,选择系统语言为简体中文,账号密码为我们在部署文件中自定义的,登录即可。

在这里插入图片描述

在这里插入图片描述

七、Stirling-PDF工具的基本使用

7.1 将word文档转换为PDF文档

点击菜单栏中的转换成PDF模块,选择将“将文件转换为PDF文件”。

在这里插入图片描述

选择文件,点击转化为PDF。

在这里插入图片描述

转换成功后,浏览器会自动下载到本地。

在这里插入图片描述

测试将转换后的pdf文档打开,浏览正常。

在这里插入图片描述

7.2 PDF转换为word

点击菜单栏中的从PDF转换模块,选择"PDF转换为word"。

在这里插入图片描述

上传文件,点击“转换”。

在这里插入图片描述

PDF文件会转换成word文件,浏览器自动下载到本地。

在这里插入图片描述

打开下载到本地的word文件,浏览文件内容。

在这里插入图片描述

八、总结

Stirling-PDF是一款功能强大的PDF工具。最新版本修复了以前版本中的一些bug,并且有更美观漂亮的界面,使用起来更加流畅。它是一款非常优秀的PDF工具,可以极大地提高我们的工作效率。我已经将它部署到本地个人工具库中了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1867974.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【AI原理解析】—朴素贝叶斯原理

朴素贝叶斯(Naive Bayes)是一种基于贝叶斯定理与特征条件独立假设的分类方法。这种分类方法简单、高效,并且在很多实际场景中都有良好的表现。 1. 贝叶斯定理 贝叶斯定理是关于条件概率的定理,它描述了两个条件概率之间的关系。…

shell (三)shell脚本

SHELL脚本 编程语言的分类 解释型语言:shell,Python,需要解析器 编译型语言:C语言,C,需要编译器 shell脚本 操作系统的结构 shell(贝壳) 应用层 app,代码 应用层需要通…

【项目实训】后端逻辑完善

经测试,我们决定前端可以同时选择多个类型的岗位进行查询,以显示相应的公司岗位信息 于是,修改后端函数的逻辑: 后端 首先,因为要对checkList中的job_name进行模糊匹配查询,于是使用以下代码&#xff1a…

C++之STL(九)

1、函数对象 什么适合推荐使用函数对象? 需要状态的函数调用: 需要状态的函数调用: 函数对象可以包含成员变量,可以在多次调用中保持状态。这在某些算法中非常有用。 提高性能: 编译器可以更好地优化函数对象,因为它们是具体的类型&#xf…

[Redis]主从模式

启动主从复制 由于我们只有一台机器,所以我们只能在机器上开多个redis程序来演示不同的机器 因为一个端口号只能被一个进程绑定,所以我们需要修改配置,绑定不同的端口号,并且还要修改工作目录(数据持久化的位置&#…

ChatTTS源码部署

感谢阅读 默认已完成的操作准备工作下载源码安装依赖下载补丁(报错在运行) 界面展示(discord上有各种补丁,我的加了UI补丁和音色增强)提示词常用(这个每个音基本都能生效)语调类语速类情感类 默认已完成的操作 python版本>3.9 cuda版本的…

3D渲染时如何提高GPU的使用率?这7点告诉你

GPU 正逐渐取代 CPU 在 3D 渲染中的地位。我们看到许多 GPU 渲染器如 Redshift、Octane、FStorm 等不断推出。以前只支持 CPU 渲染的渲染器,如 Arnold、V-Ray、Renderman、Keyshot 等,现在也开始支持 GPU 渲染。实时渲染的发展使 GPU 更受欢迎&#xff0…

梗图生成器突然爆红;ElevenLabs发布IOS APP 高质量语音朗读手机各种文本内容;开源工作流架构ControlFlow

✨ 1: 梗图生成器 fabianstelzer 在Glif做的一个超强meme生成器 Glif 是一个工作流,能生成文字图片和视频,用工作流的形式可以完成很多的花样来。 最近爆红的梗图生成器,WOJAK MEME GENERATOR ,也是用工作流的形式来生成这些有…

TiDB-从0到1-数据导出导入

TiDB从0到1系列 TiDB-从0到1-体系结构TiDB-从0到1-分布式存储TiDB-从0到1-分布式事务TiDB-从0到1-MVCCTiDB-从0到1-部署篇TiDB-从0到1-配置篇TiDB-从0到1-集群扩缩容 一、数据导出 TiDB中通过Dumpling来实现数据导出,与MySQL中的mysqldump类似,其属于…

如何选择适合你的免费电子合同软件?八款工具深度对比

主流的8款免费合同软件包括:国内的e签宝、法大大、上上签、契约锁,以及国外的SignWell、PandaDoc、Signaturely、HelloSign和SignRequest。 随着技术的进步,尤其是区块链技术的应用,电子合同的安全性和可信度正在逐渐增强。这些技…

如何提取mac app中的应用程序图标 x.app图标位置

在macos系统中安装的应用程序 .app的图标都是 以 .icns结尾的,默认位于 .app应用程序包中的Contents/Resources/目录下,只要是在这个目录下的 .icns文件就是这个应用的图标,如:mac版微信的图标就是 /Applications/WeChat.app/Co…

5个顶级开源Agent框架,你必须知道!

进入2024年,人工智能的发展已经达到了前所未有的高度,尤其是在Agent框架这一领域,出现了几个引人注目的技术成果。这些框架在智能规划、用户体验增强、记忆处理、以及大型模型调用等方面有着卓越表现,对AI界的未来发展提供了值得期…

利用多模态大模型,构建自动驾驶场景检索解决方案 | 创新场景

ITValue 痛点 在自动驾驶数据闭环的业务场景中,企业面临的挑战是难以高效的从PB级的视频和图片中选取有价值的数据,以训练和优化自动驾驶算法。 解决方案 为解决该挑战,亚马逊云科技利用大语言模型和图像文本多模态嵌入空间架构,构…

CY5-NHS生物标记应用146368-14-1

在生物科学研究和技术应用领域,荧光标记技术已成为一种科研工具。其中,CY5-NHS以其荧光特性和标记能力,在生物标记应用中扮演着科研角色。 CY5-NHS的特性与优势 CY5-NHS是一种荧光标记试剂,其荧光基团CY5赋予其强烈的荧光信号和…

【vue3】【vant】 移动本草纲目案例发布收藏项目源码

更多项目点击👆👆👆完整项目成品专栏 【vue3】【vant】 移动本草纲目案例发布收藏项目源码 获取源码方式项目说明:其中功能包括 项目包含:项目运行环境文件截图 获取源码方式 加Q群:632562109项目说明&am…

flink的窗口

目录 窗口分类 1.按照驱动类型分类 1. 时间窗口(Time window) 2.计数窗口(Count window) 2.按照窗口分配数据的规则分类 窗口API分类 API调用 窗口分配器器: 窗口函数 增量聚合函数: 全窗口函数…

llamafactory-llama3微调中文数据集

一、定义 https://github.com/SmartFlowAI/Llama3-Tutorial/tree/main 基准模型测试opencompass 离线测评数据准备微调训练合并测试人工审核对比 二、实现 基准模型测试 基准模型 llama3-8b https://zhuanlan.zhihu.com/p/694818596? https://github.com/SmartFlowAI/Llam…

什么样的台灯适合学生使用?五款暑假必入护眼大路灯分享

什么样的台灯适合学生使用?现在近视越来越低龄化,戴眼镜的小朋友越来越多,每每看着自己孩子眼睛贴到作业本上写作业,我的心都会提到嗓子眼。去医院一检查,果然,远视储备即将告罄,必须要防护了&a…

深度剖析:前端如何驾驭海量数据,实现流畅渲染的多种途径

文章目录 一、分批渲染1、setTimeout定时器分批渲染2、使用requestAnimationFrame()改进渲染2.1、什么是requestAnimationFrame2.2、为什么使用requestAnimationFrame而不是setTimeout或setInterval2.3、requestAnimationFrame的优势和适用场景 二、滚动触底加载数据三、Elemen…

【项目实训】解决前后端跨域问题

由于前端框架使用vue,后端使用flask,因此需要解决前后端通信问题 在vue.config.js中修改 module.exports defineConfig({transpileDependencies: true,lintOnSave:false, }) // 跨域配置 module.exports {devServer: { //记住&#x…