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

【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 EngineLoaded: 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.socketDocs: https://docs.docker.comMain PID: 3625 (dockerd)Tasks: 12Memory: 26.0MCPU: 3.367sCGroup: /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-fatcontainer_name: Stirling-PDFports:- '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: falseLANGS: 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.mzph.cn/news/861701.shtml

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

相关文章

详解Elastic Search高速搜索背后的秘密:倒排索引

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 引入 全文搜索属于最常见的需求,开源的 Elasticsearch (以下简称 Elastic)是目前全文搜索引…

Python应用开发——30天学习Streamlit Python包进行APP的构建(10)

st.map 显示一张叠加了散点图的地图。 它是 st.pydeck_chart 的包装器,用于在地图上快速创建散点图表,并具有自动居中和自动缩放功能。 使用该命令时,Mapbox 会提供地图瓦片来渲染地图内容。请注意,Mapbox 是第三方产品&#x…

海云安参编《数字安全蓝皮书 》正式发布并入选《2024中国数字安全新质百强》荣膺“先行者”

近日,国内数字化产业第三方调研与咨询机构数世咨询正式发布了《2024中国数字安全新质百强》(以下简称百强报告)。海云安凭借在开发安全领域的技术创新力及市场影响力入选百强报告“新质百强先行者” 本次报告,数世咨询经过对国内8…

AJAX 实例:深入解析与实战应用

AJAX 实例:深入解析与实战应用 引言 AJAX(Asynchronous JavaScript and XML)是一种无需重新加载整个网页的情况下,能够更新部分网页的技术。自2005年提出以来,AJAX已成为现代Web开发的重要组成部分,极大地提升了用户体验和网页性能。本文将通过一系列实例,深入解析AJA…

用Verilog实现4位计数器(时序逻辑)

用Verilog实现4位计数器。(时序逻辑) 实验目的: 通过用Verilog实现4位计数器,进一步熟悉Verilog的语法和时序逻辑电路。 实验描述: 输入: Clock:如果计数器enable信号为1,那么在…

多功能气象传感器的工作原理

TH-WQX9多功能气象传感器是一种集成了多种传感器技术的气象观测装置,旨在同时测量和监测大气中的多个气象要素,以提供全面、准确的气象信息。以下是关于多功能气象传感器的详细介绍: 技术原理 多功能气象传感器采用多种传感器技术相结合&…

深入理解Git:rebase与merge

在Git的版本控制中,rebase和merge是两个至关重要的操作,它们用于整合不同分支的修改。然而,很多开发者在使用时容易混淆,今天我们就来详细解析一下两者的区别、优缺点,并通过实战代码来演示它们的用法。 一、rebase与…

Linux(Ubuntu)下源码开发整个流程完成版本(下载->编译->模拟器运行)

写这篇文章没别的意思, 年纪大了记性不好, 这次工作中下载,编译遇到了一些之前没遇到的问题,所以就所幸记录一下, 以便日后能快速查阅 好了, 正题开始 首先我们下载AOSP源代码开始 AOSP源代码下载 首先找到官网https://source.android.google.cn/ 进入后最上面点击获取源代…

day01-项目介绍及初始化-登录页

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 day01-项目介绍及初始化-登录页一、人力资源项目介绍1.1项目架构和解决方案主要模块解决的问题 二、拉取项目基础代码1.引入库2.升级core-js版本到3.25.5按照完整依…

LSTM时间序列基础学习

时间序列 时间序列可以是一维,二维,三维甚至更高维度的数据,在深度学习的世界中常见的是三维时间序列,这三个维度分别是(batch_size,time_step,input_dimensions)。 其中time_step是时间步,它…

jenkins中执行docker命令

1. 修改docker.sock文件的所属组 命令如下: sudo chown root:root docker.sock 2. 对这个文件赋予权限,供其他用户使用,给定权限命令如下: sudo chmod orw docker.sock 3. docker容器映射 这里需要两个文件: 一个…

js-iframe-同源策略-addEventListener-postMessage-父子框架

文章目录 1.同源策略2.不同源解决办法-postMessage不受跨域的影响2.1.addEventListener函数监听消息2.2.父传子-不同源2.3.子传父-不同源 3.通过父页面操作子页面-同源3.1.值3.2.函数 4.通过子页面操作父页面-同源4.1.值4.2.函数 1.同源策略 在HTML页面中,我们有时…

等保主机测评防骗指南(资产调研)

你是否测评时常被运维给忽悠?是否觉得以下的对话耳熟? 你:您好,请问你们的主机资产有哪些,包括服务器、数据库、中间件、应用系统等。 甲:我们资产就这两台服务器,数据库什么的都这上面&#…

中断的“挂起状态”

中断的“挂起状态”(Pending State)是指中断信号已经被系统识别,但尚未被处理器处理的状态。在微控制器或计算机系统中,中断通常是程序外部事件(如硬件设备的信号)触发的信号,用于通知处理器需要…

C++关键字总结

1.数据类型 bool:布尔类型,属于基本类型的整数类型,取值为真和假 true:具有布尔类型的字面量,表示真 false:具有布尔类型的字面量,表示假 char:表示字符型,定义了字节的大小,char表示单字节字符 wchar_t:表…

蛇形矩阵(xmuoj)

描述 输入两个整数n和m,输出一个n行m列的矩阵,将数字11到nm按照回字蛇形填充至矩阵中。 具体矩阵形式可参考样例。 输入 输入共一行,包含两个整数n和m。 输出 输出满足要求的矩阵。 矩阵占n行,每行包含m个空格隔开的整数。…

TMGM:ASIC撤销禁令,TMGM强化合规、重启差价合约服务

TMGM作为差价合约(CFDs)与保证金外汇交易领域的领航者,安全、合规、高效被奉为我集团的终身使命。澳大利亚证券和投资委员会(ASIC)已正式撤销了早前针对TMGM差价合约业务实施的临时止损令。这一误会的解除,…

降低IT运营成本,提升客户体验 |LinkSLA亮相第十届CDIE

6月25-26日,中国数字化创新博览会(CDIE 2024)在上海张江科学会堂举行。本届展览主题为“AI创新,引领商业增长新格局”,旨在交流企业在数字化时代,如何以科技为驱动,在转型中如何把握机遇&#x…

Springboot + Mybatis-Plus代码生成指南

使用 Spring Boot 和 MyBatis-Plus 生成代码&#xff0c;可以大大简化开发流程&#xff0c;可以保持编码的规范性&#xff0c;生成单元测试等。以下是详细步骤&#xff1a; 配置pom.xml <dependency><groupId>com.baomidou</groupId><artifactId>myb…

【D3.js in Action 3 精译】推荐序

作为一名自由职业的数据可视化教育从业人员、咨询顾问和设计师&#xff0c;我从 2000 年代末开始就深深沉浸在数据可视化的各个角落&#xff0c;有幸坐到前排亲眼目睹了巨大的产业变革。数据可视化的技术格局一直在推陈出新。从行业工具的发展演变&#xff0c;到触达受众的可视…