Stirling PDF – 自托管的本地 PDF 文件处理神器

Stirling PDF:你的本地PDF瑞士军刀 - 强大的 Docker 本地托管工具,这款工具能让你在本地搭建一个功能强大的PDF处理平台。支持拆分、合并、转换、添加水印、加密等多种功能。所有操作记录均不会上传到云端,确保你的数据安全。

file

特性

核心功能

  • 暗模式支持
  • 自定义下载选项
  • 并行文件处理和下载
  • 自定义“管道”以按队列运行多个功能
  • 用于与外部脚本集成的 API
  • 可选登录和身份验证支持
  • 数据库备份和导入

页面操作

  • 查看和修改 PDF:使用自定义查看排序和搜索来查看多页 PDF。此外,还具有页面编辑功能,如注释、绘图以及添加文本和图像。(使用 PDF.js、Joxit 和 Liberation.Liberation 字体)
  • 用于合并/拆分/旋转/移动 PDF 及其页面的完整交互式 GUI
  • 将多个 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

file

安装

手动安装 Stirling-PDF(非 Docker/Podman 环境)

如果不想使用 Docker/Podman 运行此应用程序,您将需要手动安装所有依赖项并构建必要的组件。

请注意,某些依赖项可能并不存在于所有 Linux 发行版的标准仓库中,可能需要额外的安装步骤。

以下指南假设您对使用操作系统的命令行界面 (CLI) 有一定了解。

它应该适用于大多数 Linux 发行版和 MacOS。对于 Windows,您可能需要在某些步骤中使用适用于 Linux 的 Windows 子系统 (WSL)。

依赖项数量实际上是为了减少整体大小,例如安装 LibreOffice 子组件而不是完整的 LibreOffice 软件包。

理论上,如果您的发行版拥有旧的或并非所有软件包,您可以使用 Distrobox/Toolbox。 但在这种情况下,您可能更倾向于使用 Docker 容器。

步骤 1:先决条件

如果尚未安装,请安装以下软件:

  • Java 17 或更高版本(推荐 21)
  • Gradle 7.0 或更高版本(包含在代码仓库中,因此服务器上不需要单独安装)
  • Git
  • Python 3.8(带 pip)
  • Make
  • GCC/G++
  • Automake
  • Autoconf
  • libtool
  • pkg-config
  • zlib1g-dev
  • libleptonica-dev

对于基于 Debian 的系统,您可以使用以下命令:

sudo apt-get update
sudo apt-get install -y git automake autoconf libtool libleptonica-dev pkg-config zlib1g-dev make g++ openjdk-21-jdk python3 python3-pip

对于基于 Fedora 的系统,请使用以下命令:

sudo dnf install -y git automake autoconf libtool leptonica-devel pkg-config zlib-devel make gcc-c++ java-21-openjdk python3 python3-pip

对于非 root 用户且使用 Nix 包管理器,请使用以下命令:

nix-channel --update
nix-env -iA nixpkgs.jdk21 nixpkgs.git nixpkgs.python38 nixpkgs.gnumake nixpkgs.libgcc nixpkgs.automake nixpkgs.autoconf nixpkgs.libtool nixpkgs.pkg-config nixpkgs.zlib nixpkgs.leptonica

步骤 2:克隆并构建 jbig2enc(仅适用于某些 OCR 功能)

对于 Debian 和 Fedora,您可以使用以下命令从源代码构建:

mkdir ~/.git
cd ~/.git &&\
git clone https://github.com/agl/jbig2enc.git &&\
cd jbig2enc &&\
./autogen.sh &&\
./configure &&\
make &&\
sudo make install

对于 Nix,您会遇到无法检测到 Leptonica 的问题。通过以下命令直接安装它来绕过此问题:

nix-env -iA nixpkgs.jbig2enc

步骤 3:安装其他软件

接下来,我们需要安装 LibreOffice 进行转换,ocrmypdf 进行光学字符识别 (OCR),以及 opencv 用于模式识别功能。

安装以下软件:

  • libreoffice-core
  • libreoffice-common
  • libreoffice-writer
  • libreoffice-calc
  • libreoffice-impress
  • python3-uno
  • unoconv
  • pngquant
  • unpaper
  • ocrmypdf
  • opencv-python-headless

对于基于 Debian 的系统,您可以使用以下命令:

sudo apt-get install -y libreoffice-writer libreoffice-calc libreoffice-impress unpaper ocrmypdf
pip3 install uno opencv-python-headless unoconv pngquant WeasyPrint --break-system-packages

对于 Fedora:

sudo dnf install -y libreoffice-writer libreoffice-calc libreoffice-impress unpaper ocrmypdf
pip3 install uno opencv-python-headless unoconv pngquant WeasyPrint

对于 Nix:

nix-env -iA nixpkgs.unpaper nixpkgs.libreoffice nixpkgs.ocrmypdf nixpkgs.poppler_utils
pip3 install uno opencv-python-headless unoconv pngquant WeasyPrint

步骤 4:克隆并构建 Stirling-PDF

cd ~/.git &&\
git clone https://github.com/Stirling-Tools/Stirling-PDF.git &&\
cd Stirling-PDF &&\
chmod +x ./gradlew &&\

官方链接

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注