手把手教你使用 Stirling-PDF 搭建自己的 PDF 处理工具

691 阅读7分钟

在如今这个数字化时代,PDF(便携式文档格式)已经成为文档交换和存储的标准。然而,找到一款功能全面、安全可靠且完全本地化的 PDF 处理工具可不是件容易事。许多在线工具在隐私和安全方面让人担忧,而桌面软件又常常价格高昂或功能受限。那有没有一款能够兼顾功能强大、安全可靠又经济实惠的解决方案呢?

今天,我要给大家推荐一款超级强大的、基于 Web 的开源 PDF 处理工具——Stirling-PDF

image.png

Stirling-PDF 介绍

Stirling-PDF 是一款功能丰富的 PDF 操作工具,支持拆分、合并、转换、重组、添加图像、旋转、压缩等多种功能。它的诞生源于开发者和用户对安全灵活 PDF 处理工具的迫切需求。随着时间的推移,Stirling-PDF 不断发展,功能越来越强大,用户体验也愈加顺畅,活跃的社区支持使得它成为了许多用户的首选。

该工具的核心理念是提供一个安全、高效且功能全面的 PDF 处理解决方案,所有操作均在本地完成,绝不向外部发送任何数据。目前,Stirling-PDF 在 GitHub 上已经获得了近 44000 颗星的点赞!

功能特色

Stirling-PDF 提供了丰富多样的功能,满足个人用户和专业人士的各种需求。以下是一些核心功能:

页面操作

  • 查看和修改 PDF - 通过自定义查看排序和搜索功能查看多页 PDF。另外还有页面编辑功能,如注释、绘图、添加文本和图像。(使用带有 Joxit 和 Liberation.Liberation 字体的 PDF.js)
  • 用于合并/分割/旋转/移动 PDF 及其页面的全交互式图形用户界面。
  • 将多个 PDF 文件合并为一个结果文件。
  • 按指定页码将 PDF 分割成多个文件,或将所有页面提取为单独文件。
  • 按不同顺序重新组织 PDF 页面。
  • 以 90 度为增量旋转 PDF。
  • 删除页面
  • 多页布局(将 PDF 格式化为多页)。
  • 按设定的百分比缩放页面内容大小。
  • 调整对比度
  • 裁剪 PDF
  • 自动分割 PDF(使用物理扫描的分页符)。
  • 提取页面。
  • 将 PDF 转换为单页。
  • 叠加 PDF 文件

转换操作

  • 将 PDF 转换成图像或从图像转换成 PDF。
  • 将任何普通文件转换为 PDF(使用 LibreOffice)。
  • 将 PDF 转换为 Word/Powerpoint/其他文件(使用 LibreOffice)。
  • 将 HTML 转换为 PDF。
  • URL 转换为 PDF。
  • Markdown 转换为 PDF

安全与权限

  • 添加和删除密码
  • 更改/设置 PDF 权限
  • 添加水印
  • 认证/签署 PDF
  • 净化 PDF
  • 自动删除文本

其他业务

  • 添加/生成/写入签名
  • 修复 PDF
  • 检测并删除空白页
  • 比较 2 个 PDF 文件并显示文本差异。
  • 为 PDF 添加图像
  • 压缩 PDF 以减小其文件大小(使用 OCRMyPDF)。
  • 从 PDF 中提取图像
  • 从扫描文件中提取图像
  • 添加页码
  • 通过检测 PDF 标题文本自动重命名文件。
  • PDF 上的 OCR(使用 OCRMyPDF)。
  • PDF/A 转换(使用 OCRMyPDF)。
  • 编辑元数据
  • 压平 PDF
  • 获取 PDF 的所有信息,以便查看或以 JSON 格式导出。
  • 显示/检测嵌入的 Javascript

这些功能几乎涵盖了我们日常工作和专业需求中绝大多数的 PDF 处理场景,不得不说,这... 实在是太强大了!

Stirling-PDF 的技术架构

Stirling-PDF 的核心技术组件如下:

后端技术栈:

  • Spring Boot:强大的 Java 后端框架。
  • PDFBox:Apache 开源的 PDF 处理库。
  • LibreOffice:用于高级文档转换。
  • OcrMyPDF:实现 PDF 的 OCR 功能。

前端技术栈:

  • HTML, CSS, JavaScript:构建用户界面。
  • PDF.js:用于 PDF 预览和基本编辑。
  • PDF-LIB.js:提供客户端 PDF 处理能力。

开始部署

环境准备

一台云服务器 这里云服务器我以 雨云 为例,接下来我会一步一步教你如何创建一台自己的云服务器,如果已经有了,可以直接跳过这一步: 点击此链接 www.rainyun.com/NTEzMTM1_?s… 并注册 雨云 账号


点击 云产品 → 云服务器 → 立即购买

image 1.png

可以自己选择需要的带宽大小以及区域 想要低延迟,可选择国内的服务器,但建议选择带宽大一点的,自行搭配即可

image 2.png

我这里选择2核2G的配置(想要性能好的,开源悬着更高配置的,价格都很划算)

image 3.png

选择 Ubuntu 22.04 版本,并看情况选择是否预装 Docker

image 3.png

最后点击 立即购买 即可,也可以选择一元试用 购买后等待机器部署完毕后,点击购买的服务器,进入管理面板,找到远程连接相关信息

image 5.png

image 6.png

使用 PowerShell 远程连接

Win+R 输入 powershell

image 7.png

输入 ssh root@you_server_ip 例如 ssh root@154.9.227.239 回车后首次需要输入 yes 再次回车后即可登录服务器

image 8.png

到此为止,我们的环境准备完毕

使用 docker run 运行 docker 容器

Stirling-PDF 的 docker 镜像可以在 Docker Hub 的 frooodle/s-pdf 或 Github 的 s-pdf 上找到。

请注意,Stirling PDF 针对不同的硬件配置提供了三种不同的版本。

希望在低端硬件上获得最佳性能的用户可以从提供的特定版本中进行选择。

对于喜欢最新功能和更新的用户,建议继续使用latest标签。

版本最新标签
标准版latest
超精简版latest-ultra-lite

运行命令:

docker run -d \
  -p 8080:8080 \
  -v /location/of/trainingData:/usr/share/tessdata \
  -v /location/of/extraConfigs:/configs \
  -v /location/of/logs:/logs \
  -e DOCKER_ENABLE_SECURITY=false \
  -e INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false \
  -e LANGS=en_GB \
  --name stirling-pdf \
  frooodle/s-pdf:latest

也可添加这个内容进行指定路径挂载,但不是必需的

-v /location/of/customFiles:/customFiles \

使用 docker compose 运行 docker 容器

创建并编辑一个 docker-compose.yaml 文件

vim docker-compose.yaml

内容如下:

version: '3.3'
services:
  stirling-pdf:
    image: frooodle/s-pdf:latest
    ports:
      - '8080:8080'
    volumes:
      - /location/of/trainingData:/usr/share/tessdata #Required for extra OCR languages
      - /location/of/extraConfigs:/configs
#      - /location/of/customFiles:/customFiles/
#      - /location/of/logs:/logs/
    environment:
      - DOCKER_ENABLE_SECURITY=false
      - INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false

运行:

docker compose up -d

在 Windows 中运行

可通过一个可下载的 .exe 文件提供 Windows 兼容性,该文件可从 这里获得,一般下载 Stirling-PDF.exe 即可。这是一个精简版应用程序,提供与 Docker 中的 Stirling-PDF-Ultra-lite 相同的功能,但可执行文件小巧,只有 80MB 大小!

只需下载并启动 .exe 文件,即可访问 Stirling-PDF Web-UI 。需要注意的是,该应用程序需要 JAVA 1721。如果应用程序发现您的系统中未安装此版本的 JAVA,则会提示下载相应版本的链接。

启动后,就可以访问你本地的 8080 端口了 http://127.0.0.1:8080

设置为中文

点击如下图片位置,即可切换为中文

image 9.png

接下来就可以使用这个强大的工具啦!!

如果你在寻找靠谱的云服务,这里我推荐可以考虑 雨云。他们提供的服务挺全面的:

  • 虚拟主机:在洛杉矶、香港、江苏、湖北等地都有大带宽的选择,非常适合搭建网站。
  • 云服务器:同样支持多个地区,带宽大,确保你的应用运行顺畅。
  • 游戏云:专为游戏设计,低延迟,适合游戏开发和运营。
  • CDN:帮助加速内容分发,提升访问速度。
  • 对象存储:灵活安全,适合大规模数据管理。
  • 裸金属物理机:对于高性能需求,提供专属资源。
  • 域名注册服务:方便的域名管理,简单易用。
  • SSL证书:增强网站安全性,提升用户信任。

如果感兴趣,可以通过这个链接了解更多:雨云 - 云服务器

相关链接

雨云 - 新一代云服务提供商

我的博客:https://blog.ivwv.site

本文由博客一文多发平台 OpenWrite 发布!