Stirling PDF:你的本地PDF瑞士军刀 - 强大的 Docker 本地托管工具,这款工具能让你在本地搭建一个功能强大的PDF处理平台。支持拆分、合并、转换、添加水印、加密等多种功能。所有操作记录均不会上传到云端,确保你的数据安全。
特性
核心功能
- 暗模式支持
- 自定义下载选项
- 并行文件处理和下载
- 自定义“管道”以按队列运行多个功能
- 用于与外部脚本集成的 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
安装
手动安装 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 &&\