一款允许使用Docker部署本地托管的、基于 Web 的 PDF 操作工具

server/2024/9/25 4:36:46/

大家好,今天给大家分享的是一个基于Spring Boot开发的开源项目,旨在提供一个功能强大的基于Docker的本地托管PDF操作工具Stirling PDF

项目介绍

Stirling-PDF是一个全面的PDF工具箱,适用于个人和企业用户,尤其对于那些重视数据隐私和需要在本地环境中处理敏感文档的场景非常适用。

系统功能

  • 深色模式支持。
  • 自定义下载选项
  • 并行文件处理和下载
  • 用于与外部脚本集成的 API
  • 可选的登录和身份验证支持
  • 数据库备份和导入

PDF处理功能

页面操作

  • 查看和修改 PDF - 通过自定义查看排序和搜索查看多页 PDF。加上页面编辑功能,如注释、绘图以及添加文本和图像。 (使用 PDF.js 和 Joxit 和 Liberation.Liberation 字体)

  • 用于合并/分割/旋转/移动 PDF 及其页面的完整交互式 GUI。

  • 将多个 PDF 合并为一个结果文件。

  • 将 PDF 拆分为指定页码的多个文件,或将所有页面提取为单独的文件。

  • 将 PDF 页面重新组织为不同的顺序。

  • 以 90 度增量旋转 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。

采用技术栈

  • Spring Boot + Thymeleaf
  • PDFBox
  • 高级转换功能使用LibreOffice实现
  • OcrMyPdf
  • HTML, CSS, JavaScript
  • Docker
  • PDF.js
  • PDF-LIB.js

安装使用

安装

Stirling PDF 有 3 个不同的版本:完整版本、超精简版以及“胖”版本。根据您使用的功能类型,您可能需要较小的图像以节省空间。对于不介意空间优化的人,只需使用最新的标签。

请注意,在下面的示例中,您可能需要根据需要更改卷路径,当前示例将它们安装到当前工作目录,例如 ./extraConfigs:/configs 到 /opt/stirlingpdf/extraConfigs:/configs

Docker Run

docker run -d \-p 8080:8080 \-v ./trainingData:/usr/share/tessdata \-v ./extraConfigs:/configs \-v ./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

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

如果你想支持OCR相关功能,请阅读如何集成ORC功能。

使用截图

URL转PDF

压缩PDF

合并PDF

PDF转Word

PDF添加水印

比较PDF

项目地址

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

一款允许使用Docker部署本地托管的、基于 Web 的 PDF 操作工具 - BTool博客 - 在线工具软件,为开发者提供方便 


http://www.ppmy.cn/server/90352.html

相关文章

服务器数据恢复—raid信息丢失导致RAID无法被识别的数据恢复案例

服务器数据恢复环境&故障: 某单位机房搬迁,将所有服务器和存储搬迁到新机房并重新连接线路,启动所有机器发现其中有一台服务器无法识别RAID,提示未做初始化操作。 发生故障的这台服务器安装LINUX操作系统,配置了NF…

[极客大挑战 2019]PHP1

打开靶机 提示有备份,可以用工具扫描,我还没有配置好环境,搜了一下其他师傅的:备份的地址在这: /www.zip 下载后得到这几个文件: index.php就是上面打开的网页,其中有一段php代码:…

我在高职教STM32——串口通信(5)

大家好,我是老耿,高职青椒一枚,一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次,同行应该都懂的,老师在课堂上教学几乎是没什么成就感的。正因如此,才有了借助 CSDN 平台寻求认同感和成就感的想法。在这里,我准备陆续把自己花了很多心思的教学设计分享…

Go语言入门之错误处理

Go语言入门之错误处理 错误处理是开发中必不可少的一个部分,go中的错误一般有两种,一种为error,一种为panic go语言通常返回一个错误值,然后检查错误值是否为nil,以此判断函数是否执行 1.Error Go使用error接口来表示一…

3D建模软件--犀牛Rhino for Mac

Mac分享吧 文章目录 效果一、下载软件二、开始安装1、双击运行软件,将其从左侧拖入右侧文件夹中,等待安装完毕2、应用程序显示软件图标,表示安装成功 三、运行测试安装完成!!! 效果 一、下载软件 下载软件…

PHP面向对象

PHP 面向对象编程(OOP)是一种编程范式,它允许开发者将代码组织成类和对象,从而提高代码的可维护性、可扩展性和复用性。以下是 PHP 面向对象的详细教程,包括面向对象的创建教程和使用方法。 一、面向对象的基本概念 …

Layui Selcet选择框动态选择问题

前言 时隔多日我也是重新回归写作,高考已经完毕,我将继续我的文章创作,今天我将分享的是我在开发我自己的一个新项目所遇到的问题,这里预告一下我的新项目: VitaApi管理系统 这个系统可以看作是萌新源api管理系统的延续&#xff…

算法:BFS解决 FloodFill 算法

目录 FloodFill 算法 题目一:图像渲染 题目二:岛屿数量 题目三:岛屿的最大面积 题目四:被围绕的区域 FloodFill 算法 在递归搜索回溯中已经说到过 FloodFill 算法了,但是那里是用 dfs 解决的,这里会使…