23
2024
04
10:42:12

使用轻量应用服务器搭建专属自己PDF处理工具

Stirling-Tools/Stirling-PDF[1]

Stars: 13.2k  License: GPL-3.0

picture

这个项目是 Stirling-PDF,它是一个功能强大的基于本地主机的 Web PDF 操作工具,使用 Docker 进行部署。其主要功能包括分割、合并、转换、重新组织 PDF 文件以及添加图片、旋转和压缩等多种操作。该项目的核心优势和关键特点包括:

  • 不会发出任何记录或跟踪请求;

  • 所有文件和 PDF 都仅存在于客户端侧,在任务执行期间仅驻留在服务器内存中,或者临时驻留在用于执行任务的文件中;

  • 提供暗黑模式支持;

  • 支持自定义下载选项,并提供 API 用于与外部脚本集成;

  • 可选择登录认证支持。

build-trust/ockam[2]

Stars: 4.0k  License: Apache-2.0

Ockam 是一套开源编程库和命令行工具,用于协调端到端加密、相互认证、密钥管理等功能。其主要功能包括构建安全的分布式应用程序,并提供终点对终点数据真实性、完整性和保密性的保障。 该项目的关键特点和核心优势包括:

  • 提供强大且简单易用的协议

  • 基于身份验证与策略驱动,为应用层提供精确授权及认证

  • 支持通过多跳传输路由创建安全通道

  • 可在企业消息传递系统中引入端到端加密

BartoszJarocki/cv[3]

Stars: 2.6k  License: MIT

picture

这是一个简单的网页应用程序,可以呈现出具有适合打印的布局的极简主义简历。它使用 Next.js 和 shadcn/ui 构建,并部署在 Vercel 上。

georgia-tech-db/evadb[4]

Stars: 2.4k  License: Apache-2.0

EvaDB 是一个用于 AI 应用的数据库系统,它可以让软件开发人员只需几行代码就能构建 AI 应用。其强大的 SQL API 简化了结构化和非结构化数据AI 应用开发过程。EvaDB 具有以下核心优势:

  • 可以轻松连接到诸如 PostgreSQL 或 S3 存储桶等数据源,并使用 SQL 查询来构建基于 AI 的应用。

  • 支持多种类型 (包括结构化、非结构化和应用程序) 的数据源,例如 PostgreSQL、SQLiteMySQLMariaDB 等。

  • 提供预训练好的模型库 (如 Hugging Face,Open AI,YOLO),支持各种任务,包括文本分类、图像分割和对象检测等。

  • 可以创建或微调回归、分类和时间序列预测模型,并支持 Ludwig,Sklearn,Xgboost 等 AutoML 框架。

  • 通过缓存机制、批处理和并行处理实现更快速度高效率地进行 AI 查询操作。

HolographicWings/TOTK-Mods-collection[5]

Stars: 2.4k  License: Apache-2.0

这个项目是一个为《塞尔达传说:王国之泪》(TOTK) 提供的 Mod 集合。该项目主要功能包括动态帧率匹配、分辨率调整和图形优化等。以下是该项目的核心优势和关键特点:

  • 动态 FPS:根据您的帧率与游戏时钟进行匹配,修复慢动作/加速现象。

  • 分辨率配置文件:针对不同版本提供了多种分辨率选项。

  • 图像质量改进:增强模型细节,并且可以通过减少模型切换来提高性能。

  • 禁用内部 FSR 降频、禁用 FXAA 效果以及其他图形相关修改。

此外还有一些额外好处,如控制器界面修改、无限耐久度等 Cheat 代码可供选择使用。总体而言,这个开源项目为《塞尔达传说:王国之泪》游戏添加了许多实用的功能和改进选项。

nodejs/undici[6]

Stars: 5.0k License: MIT

undici 是一个为 Node.js 从头开始编写的 HTTP/1.1 客户端。该项目主要功能包括提供 HTTP 请求和响应处理,以及实现 fetch 标准。其核心优势和关键特点包括:

  • 提供高性能:在基于 Unix 套接字连接上进行了简单的 hello world 基准测试后,undici 相比其他方法有着更快的请求速度。

  • 支持多种 API 方法:支持常用 API 方法如 request、stream、pipeline 等,并且可以设置全局调度器来使用这些通用 API 方法。

  • 遵循规范:虽然不完全遵守 Fetch Standard 或者 HTTP/1.1 specification 中所有内容,但对大部分内容都做到了兼容与支持。

相关链接

[1]

Stirling-Tools/Stirling-PDF: https://github.com/Stirling-Tools/Stirling-PDF

[2]

build-trust/ockam: https://github.com/build-trust/ockam

[3]

BartoszJarocki/cv: https://github.com/BartoszJarocki/cv

[4]

georgia-tech-db/evadb: https://github.com/georgia-tech-db/evadb

[5]

HolographicWings/TOTK-Mods-collection: https://github.com/HolographicWings/TOTK-Mods-collection

[6]

nodejs/undici: https://github.com/nodejs/undici



使用轻量应用服务器搭建专属自己PDF处理工具

1、前言

PDF文件是日常办公中经常使用的一种文档格式。最近,青阳面临一个问题:某公司发送过来的文件需要我们进行印章流程,但由于该公司系统在电子文件加盖电子公章后会自动加密,导致我们的印章程序无法正常进行电子公章的加盖。面对这一情况,青阳感到非常着急,四处寻找解决方案。在网络上,有许多与PDF相关的工具,但大多数要求会员资格或登录,操作繁琐,而且存在文件泄漏等安全隐患。

鉴于上述问题,为了解决实际的印章流程困扰,我在Github上找到一款免费、开源的PDF工具:Stirling-PDF,这里推荐给大家。

2、介绍

2.1基本介绍

Stirling-PDF是可以在本地托管的基于Web的PDF操作工具,其最初由ChatGPT制作,并经过持续版本迭代更新。该工具支持对PDF文件执行多种操作,包括拆分、合并、转换、重组、添加图像、旋转、压缩等功能。更重要的是,Stirling-PDF完全开源免费,彻底告别了付费和烦扰的广告。

如果担心隐私泄露问题,用户还可以选择自建Stirling-PDF本地服务。该项目的源代码已在Github上开源,赢得了16.5K颗星的支持。

2.2主要功能

Stirling-PDF的主要功能包括:

  • 支持Windows、Linux、MacOS全平台

  • 支持暗黑主题、中文、英文等多种语言

  • 提供用于与外部脚本集成的API

  • 提供完整的Web-GUI,用于合并、分割、旋转、移动PDF及其页面

  • 能够将PDF分割为多个文件或将多个PDF合并为一个

  • 支持将PDF转换为图片,以及将图片转换为PDF

  • 检测并删除空白页

  • 比较两个PDF并显示文本差异

  • 向PDF中添加图片

  • 压缩PDF以减小文件大小

  • 添加和移除密码、添加水印

  • 将任何常见文件转换为PDF

  • 将PDF转换为Word/Powerpoint/其他格式

  • 从PDF中提取图片,对PDF进行OCR。

GitHub地址:Stirling-Tools/Stirling-PDF: locally hosted web application that allows you to perform various operations on PDF files (github.com)

Docker Hub地址:frooodle/s-pdf - Docker Image |frooodle/s-pdf - Docker Image |frooodle/s-pdf - Docker Image |frooodle/s-pdf - Docker Image |frooodle/s-pdf - Docker Image |frooodle/s-pdf - Docker Image |frooodle/s-pdf - Docker Image |frooodle/s-pdf - Docker Image |frooodle/s-pdf - Docker Image |frooodle/s-pdf - Docker Image | Docker Hub

3、安装

官方提供多种方法:Stirling-Tools/Stirling-PDF

使用服务器配置:

  • CPU - 2核 内存 - 2GB

  • 系统盘 - SSD云硬盘 50GiB管理快照

  • 流量包 - 300GB/月(带宽:4Mbps)

下面以在腾讯云轻量应用服务器的docker镜像安装为例。

如果购买的腾讯云轻量应用服务器不是docker镜像的可以重装成docker基础镜像。

请在此添加图片描述
请在此添加图片描述

如果使用其他服务器没有docker可以看这篇文章:原来服务器这么有用-Docker安装 - 青阳のblog-一个计算机爱好者的个人博客 (hipyt.cn)

注意

如果没有服务器可以通过传送门新购一台。

腾讯云轻量应用服务器购买地址:传送门

2.1登录服务器

进入腾讯云轻量应用服务器的控制台,点击右上方的 登录 ,使用腾讯云OrcaTerm 登录到服务器(注意图片中标记的两个位置都可以使用)。

请在此添加图片描述
请在此添加图片描述

点击登录之后将会进入到服务器内部。

注意使用sudo -i切换到管理员模式。

请在此添加图片描述
请在此添加图片描述

2.1.1 检查docker服务状态

执行以下命令,新建目录并验证

systemctl status docker

请在此添加图片描述
请在此添加图片描述

2.1.2 下载Stirling-PDF镜像
docker pull frooodle/s-pdf:latest

从docker hub拉取最新的镜像。

输入命令拉取
输入命令拉取
拉取成功
拉取成功

2.1.3 启动容器
docker run -d --name pdf -p 8080:8080 frooodle/s-pdf:latest
2.1.4放通防火墙

腾讯云修改防火墙位置
腾讯云修改防火墙位置
注意自己的端口
注意自己的端口

一般情况只需要填写端口就行,注意端口是和上面,启动docker是设置的端口一致的。

3、简单使用教程

3.1 访问Stirling PDF

访问地址:http://ip:8080/

将IP更换为自己服务器的IP地址,端口也换成自己设置的。

输入图片说明
输入图片说明

右上角可以修改语言,这样就可以简单使用啦。

4、使用域名访问

4.1安装 Caddy

apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list
apt update
apt install caddy
4.1.1启动 Caddy
systemctl start caddy
4.1.2开机启动
systemctl enable caddy

4.2修改配置文件

vim /etc/caddy/Caddyfile
pdf.example.com {
         tls pdf@example.com
         encode gzip
         reverse_proxy localhost:8080}

把配置中的 pdf.example.com 替换为自己的域名, pdf@example.com 替换为你的邮箱,用于签发 SSL 证书。(所填邮箱不一定要是真实存在的。)

输入图片说明
输入图片说明

4.2.1加载配置文件
systemctl reload caddy

4.3添加解析

输入图片说明
输入图片说明

访问 https://pdf.example.com 即可访问自己的 Stirling PDF。








在Linux上使用Docker在本地部署一个开源的PDF工具——Stirling PDF,并且结合cpolar的内网穿透实现公网随时随地访问。

Stirling PDF一个强大的本地托管的基于Web的PDF操作工具,使用Docker,允许您对PDF文件执行各种操作,如分割、合并、转换、重组、添加图片、旋转、压缩等。这个本地托管的Web应用程序最初是一个100%由ChatGPT制作的应用程序,现在已经发展到包含了一系列的功能,以满足您所有的PDF需求。


1. 安装Docker

本文演示环境:CentOS7,Xshell7远程ssh

没有安装Docker的小伙伴需安装Docker,已有Docker可跳过以下步骤。

如没有安装Docker,需先安装Docker:

  • 安装软件包(提供实用程序)并设置存储库
    $ sudo yum install -y yum-utils
    $ sudo yum-config-manager --add-repo download.docker.com/lin
    安装Docker引擎
    sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    启动Docker
    sudo systemctl start docker
    通过运行映像来验证 Docker 引擎安装是否成功
    sudo docker run hello-world


2. 本地安装部署StirlingPDF

检查Docker服务是否正常运行

systemctl status docker

检查Docker版本

docker -v

检查Docker compose版本

docker compose version

在docker hub下载Stirling-PDF镜像

docker pull   frooodle/s-pdf:latest



使用docker-cli快速创建Stirling-PDF容器



检查Stirling-PDF容器状态状态,确保Stirling-PDF容器正常启动

docker ps



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

docker logs stirling-pdf



本地访问地址:192.168.149.143:8380,将IP替换为自己服务器IP地址



语言切换:点击“地球”形状小图标,点击简体中文即可






3. Stirling-PDF功能介绍

Stirling-PDF还有很多功能,比如:合并/拆分/旋转/移动PDF及其页面的完全交互式GUI、将多个 PDF 合并到一个生成的文件中、将 PDF 拆分为多个文件,并按指定的页码或将所有页面提取为单个文件、将PDF转换为Word/Powerpoint/Others等,接下来举两个常用功能。

将word文档转换为PDF文档

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





添加水印功能

安全——添加水印,填写水印内容,确认即可



我们就成功在本地搭建了Stirling-PDF,但如果想实现出门在外,或者直接把这个功能分享给身边人,省去本地部署的步骤,并且也能随时随地使用Stirling-PDF进行异地工作就需要借助cpolar内网穿透工具来实现公网访问了!接下来介绍一下如何安装cpolar内网穿透并实现Stirling-PDF的公网访问!


4. 安装cpolar内网穿透

下面是安装cpolar步骤:

cpolar官网地址: https://www.cpolar.com
  • 使用一键脚本安装命令

curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 向系统添加服务

sudo systemctl enable cpolar
  • 启动cpolar服务

sudo systemctl start cpolar

cpolar安装成功后,在外部浏览器上访问Linux 的9200端口即:【http://服务器的局域网ip:9200】,使用cpolar账号登录,登录后即可看到cpolar web 配置界面,结下来在web 管理界面配置即可。



接下来配置一下Stirling-PDF的公网地址,

登录后,点击左侧仪表盘的隧道管理——创建隧道,

创建一个Stirling-PDF的公网http地址隧道

  • 隧道名称:可自定义命名,注意不要与已有的隧道名称重复

  • 协议:选择http

  • 本地地址:8380(本地访问的地址)

  • 域名类型:免费选择随机域名

  • 地区:选择China Top



隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是http 和https



使用上面的Cpolar https公网地址,在任意设备的浏览器进行访问,即可成功看到Striling-PDF界面,这样一个公网地址且可以远程访问就创建好了,使用了cpolar的公网域名,无需自己购买云服务器,即可到公网进行远程访问了!



小结

如果我们需要长期异地远程访问Stirling-PDF,由于刚才创建的是随机的地址,24小时会发生变化。另外它的网址是由随机字符生成,不容易记忆。如果想把域名变成固定的二级子域名,并且不想每次都重新创建隧道来访问Stirling-PDF,我们可以选择创建一个固定的http地址来解决这个问题。


5. 固定Stirling-PDF公网地址

我们接下来为其配置固定的HTTP端口地址,该地址不会变化,方便分享给别人长期查看你的博客,而无需每天重复修改服务器地址。

配置固定http端口地址需要将cpolar升级到专业版套餐或以上。

登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称



保留成功后复制保留成功的二级子域名的名称



返回登录Cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑



修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名

  • Sub Domain:填写保留成功的二级子域名

点击更新(注意,点击一次更新即可,不需要重复提交)



更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名名称的域名



最后,我们使用固定的公网https地址访问,可以看到访问成功,这样一个固定且永久不变的公网地址就设置好了,可以随时随地进行异地访问Stirling-PDF!




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/5853.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: