自托管服务
Stirling-Tools/Stirling-PDF avatar
Stirling-Tools/Stirling-PDF

Stirling-PDF:一个把 PDF 工具链搬进 Docker 的开源平台

开源 PDF 平台:50 多种工具可编辑、合并、签名、隐去、转换与 OCR,自托管运行让文档始终留在自己的服务器上。

92,193 个 Star8,406 个 ForkJava许可证因项目而异

秒懂

它是什么?
Stirling-PDF 是一个开源 PDF 处理平台,提供 50 多种工具,支持本地、浏览器和自托管部署。本文基于仓库文档分析其架构、快速上手方式、局限性和适用场景。
适合谁用?
Stirling-PDF 适合需要本地或私有化 PDF 处理的个人用户、中小团队,以及希望将 PDF 操作集成到现有系统中的开发者。它不适合需要复杂版面设计或专业排版功能的设计师,也不适合对数据隐私要求极高且不允许任何外部通信的场景,因为默认 Docker 镜像可能包含遥测或更新检查。
能商用吗?
请先确认。这个仓库使用的许可证不在我们自动归类的范围内,商用前请阅读仓库里的 LICENSE 文件。
还在维护吗?
在维护。仓库在最近一天内有新的提交。
用什么语言写的?
主要是 Java(依据 GitHub 的语言统计)。

以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。

开源项目深度解析

它解决什么问题,给谁用

PDF 编辑工具长期被商业软件垄断,在线服务又要求把文档上传到第三方服务器,这对敏感文件是个风险。Stirling-PDF 把 50 多种 PDF 操作打包成一个开源平台,你可以跑在本地 Docker、桌面应用或自己的服务器上,文档不用离开你的网络。它面向三类人:不想订阅 Adobe 的个人用户,需要内部 PDF 处理流程的企业,以及想通过 REST API 把 PDF 功能嵌入自家系统的开发者。README 明确提到“private API”和“automation”,说明它不是简单的前端工具,而是一个可编程的平台。

架构与工作方式:从 UI 到 API 的同一套工具

从仓库布局和文档描述看,Stirling-PDF 的核心是一组 Java 后端服务,每个 PDF 操作(合并、拆分、签名、OCR 等)对应一个独立的功能模块。UI 层提供浏览器界面和桌面客户端,但底层调用的是同一套 REST API。这意味着你在界面上点按钮做的操作,完全可以通过 API 调用实现,适合写脚本批量处理。README 提到“no-code pipelines direct in UI with APIs”,说明工作流引擎是内置的,你可以把多个操作串成管道,而不用写代码。这种设计的好处是,前端和后端解耦,开发者可以直接对接 API,运维人员可以只部署服务端。

快速启动:一条 Docker 命令

最直接的启动方式就是 README 里的 Docker 命令:docker run -p 8080:8080 docker.stirlingpdf.com/stirlingtools/stirling-pdf,然后打开 http://localhost:8080。这个镜像来自官方仓库,默认暴露 8080 端口。如果你想换端口,改 -p 参数即可,比如 -p 9090:8080。对于需要持久化配置或数据库的场景,README 没有给出具体变量,但提到了 Kubernetes 部署选项,说明有更复杂的配置方式。桌面客户端和服务器版需要查阅文档指南,这里只确认了 Docker 是最快捷的路径。

功能边界:50+ 工具,但并非万能

README 列出了“Edit, merge, split, sign, redact, convert, OCR, compress”等能力,覆盖了日常办公 90% 的需求。但要注意,它没有提到表单设计、页面重排或专业排版功能,这些通常是 Adobe InDesign 或 Acrobat Pro 的领域。另一个限制是 OCR 功能依赖语言包,如果你处理的是小众语言文档,可能需要额外下载模型,文档中没提具体支持哪些语言,只说了 UI 有 40+ 语言。所以,对于需要复杂版面控制或高精度 OCR 的场景,Stirling-PDF 可能力不从心。

企业级功能与开源核心的张力

README 声称“Enterprise-grade”包括 SSO、审计和灵活部署,但同时标注“open-core”,这意味着这些高级功能可能不是全部开源。文档链接指向“Paid-Offerings”,暗示存在商业版本。这带来一个实际问题:你部署的社区版可能缺少某些企业功能,比如高级审计日志或集中式用户管理。如果你需要这些,得提前确认付费计划是否包含,而不是假设开源版全都有。这种模式在开源项目里常见,但 Stirling-PDF 的边界不算清晰,至少 README 没有明确哪些功能是付费的。

替代方案:对比差异才是关键

一个直接的替代是 Apache PDFBox,它是 Java 库,提供底层的 PDF 操作 API。Stirling-PDF 本身很可能就用了类似库,但 PDFBox 没有 UI,也没有现成的 Web 服务,你需要自己写代码包装。另一个替代是在线服务如 Smallpdf,但你要把文件上传到第三方,隐私风险高。Stirling-PDF 的核心差异在于:它把 PDFBox 这类底层库封装成了开箱即用的工具和 API,同时允许你自托管。如果你只需要偶尔转换格式,Smallpdf 更快;如果你要自动化处理大量文件,Stirling-PDF 的 API 比 PDFBox 省事得多。

维护与升级成本

项目活跃度较高,最近一次发布是 v2.14.3,主要包含 bug 修复,说明维护节奏稳定。升级方式取决于部署模式,Docker 用户直接拉新镜像即可,但要注意配置兼容性,比如 v2.14.2 提到“Hotfix for certain postgres environments”,暗示数据库配置可能影响升级。桌面客户端和服务器版需要手动更新,Kubernetes 部署则涉及滚动更新策略。许可证是 open-core,具体细节在 LICENSE 文件里,但 README 没提具体协议,比如是否是 GPL 或 Apache 2.0,这会影响你能否将修改后的代码闭源。建议在采用前查看 LICENSE 文件。

编辑结论

Stirling-PDF 适合需要本地或私有化 PDF 处理的个人用户、中小团队,以及希望将 PDF 操作集成到现有系统中的开发者。它不适合需要复杂版面设计或专业排版功能的设计师,也不适合对数据隐私要求极高且不允许任何外部通信的场景,因为默认 Docker 镜像可能包含遥测或更新检查。在采用前,应先验证你的部署方式(Docker、桌面或 Kubernetes)是否满足性能要求,检查 SSO 和审计功能是否覆盖你的企业需求,并确认你使用的工具在 API 文档中是否有对应端点。它的开源核心覆盖了大部分常见操作,但高级功能如自动化工作流可能属于付费计划,需在部署前明确边界。

官方来源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社区笔记

社区笔记