本文最后更新于 2024-05-30,文章内容可能已经过时。

官方介绍

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

部署之前咱们也可以根据作者给出的demo在线体验(用户名/密码:demo):https://stirlingpdf.io/

安装方法

1、创建文件夹

创建stirling-pdf文件夹,并在该文件夹下创建config、data、logs、customFiles文件夹,这里需要注意该文件夹的权限,以及文件夹命名得参照作者具体说明

2、Container Manager&Docker Compose

这里利用Container Manager新建容器创建Docker Compose的方式进行部署,操作部署步骤如下:

  • 打开Container Manager进入后点击项目菜单栏

  • 点击新增创建项目,设置好项目容器的部署路径,项目名称,这里我采用的是创建Docker Compose的方式,这里注意Vloumes需要修改你的真实路径以及Ports可以修改为你自己想要的端口号,这里注意端口号不要和你现在的有冲突

  • 下面是我的docker-compose.yml的文件内容提供参考;(注意:实际部署路径以及端口号以你自己的实际情况为准)
version: '3'
services:
  stirling-pdf:
    image: frooodle/s-pdf:latest
    container_name: Stirling-PDF
    ports:
      - '8386:8080'
    volumes:
      - /volume1/docker/stirling-pdf/trainingData:/usr/share/tessdata    # OCR 语言支持
      - /volume1/docker/stirling-pdf/extraConfigs:/configs
      - /volume1/docker/stirling-pdf/customFiles:/customFiles/
      - /volume1/docker/stirling-pdf/logs:/logs/
    environment:
     DOCKER_ENABLE_SECURITY: true    # 启用内部安全功能
     SECURITY_ENABLELOGIN: true    # 启用登录功能
     SECURITY_INITIALLOGIN_USERNAME: Nathan   # 登录账户
     SECURITY_INITIALLOGIN_PASSWORD: Mft6291456@   # 登录密码  
     UI_APPNAME: Nathan PDF    # 导航页标题
     INSTALL_BOOK_AND_ADVANCED_HTML_OPS: false
     SYSTEM_DEFAULTLOCALE: zh_CN    # 默认中文

Stirling-PDF体验

在容器新建部署完成后,可以手动将容器重启一下,重启容器跑起来后直接在浏览器输入[http:NAS的局域网IP:端口号]就能打开容器界面,下图即为Stirling-PDF界面

ORC中文添加

至于OCR扫描,我们需要先去官方页面下载支持的中文语言,,这里我选择的是简约版,Stirling-PDF/HowToUseOCR.md at main · Stirling-Tools/Stirling-PDF (github.com)

将下载好的chi_sim.traineddata中文语言包上传到trainingData子文件即可

在添加好文件后,重新刷新网页既可以发现有了中文选项,勾选使用即可