惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
MyScale Blog
MyScale Blog
Microsoft Security Blog
Microsoft Security Blog
量子位
B
Blog
aimingoo的专栏
aimingoo的专栏
Apple Machine Learning Research
Apple Machine Learning Research
阮一峰的网络日志
阮一峰的网络日志
The GitHub Blog
The GitHub Blog
T
The Exploit Database - CXSecurity.com
N
News | PayPal Newsroom
Cloudbric
Cloudbric
A
About on SuperTechFans
AI
AI
Hacker News: Ask HN
Hacker News: Ask HN
S
Schneier on Security
Recent Commits to openclaw:main
Recent Commits to openclaw:main
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Cyber Attacks, Cyber Crime and Cyber Security
L
LINUX DO - 最新话题
T
The Blog of Author Tim Ferriss
Simon Willison's Weblog
Simon Willison's Weblog
有赞技术团队
有赞技术团队
H
Heimdal Security Blog
J
Java Code Geeks
大猫的无限游戏
大猫的无限游戏
D
Docker
Security Archives - TechRepublic
Security Archives - TechRepublic
N
News and Events Feed by Topic
IT之家
IT之家
Know Your Adversary
Know Your Adversary
N
Netflix TechBlog - Medium
T
Tailwind CSS Blog
B
Blog RSS Feed
C
Cybersecurity and Infrastructure Security Agency CISA
C
Cisco Blogs
博客园 - 叶小钗
美团技术团队
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
H
Hackread – Cybersecurity News, Data Breaches, AI and More
L
LangChain Blog
The Hacker News
The Hacker News
Y
Y Combinator Blog
I
Intezer
The Register - Security
The Register - Security
F
Full Disclosure
V
V2EX
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Last Week in AI
Last Week in AI
Martin Fowler
Martin Fowler

BlogFinder

日常漫步 Vol.24 之漫步前山河 - 雅余 周报 #1-聊聊本周的收获 - Edwin's Blog 我的OpenCode必装插件与Skill Write Something 掌中之物未必在掌握之中 · CRIVU PiliNara,一个更顺手的 PiliPlus 分支 「NekoEcho」:做一个必有回响的猫娘主题博客 2026-05 书影音总结 简化博客主题 - 安迪 我第一次发布 npm 包 拾花小记#45:中考前的二三事 – 小改学习志 黛西花园5月游 #18 枇杷又熟了的五月月报 一些奇奇怪怪的需求?word仿方正书版的几个小操作 - Xiobb's Blog 0419 御温泉之旅 修复了一些bug,网站基本上趋于稳定了 - 新锐博客 又回到四十年前 如何定义成功 迷鹿屋2026已重新上线 科技冰火两重天+一周回顾 ${title} 热度退了,我反而用得更深了-咕咚同学 我到底该不该换个域名? 随身WIFI折腾记 - 安迪 博客撰写体验提升——hexo pro插件 为什么不用相机把屏幕上的接关密码拍下来? 国清寺与天台山 – Ouroboros ★★★★☆《挽救计划》——久违的经济上行感 - Davidの3号基地 删除右键“打开方式”里多余选项 第三周刊_No.53|一切都会被支付两次 安卓APP通话记录与录音上传踩坑记录 - 子舒的博客 天量下跌 inBox 笔记 2.3.8,把工具栏交给了你-咕咚同学 我把小龙虾搬到了微信-咕咚同学 安好 - 响石潭 Compound Engineering Plugin:让每个工程单元都比上一个更容易 MOSS-TTS Family:开源高质量语音与声音生成模型家族深度解析 Crawl4AI:专为 LLM 设计的开源 Web 爬虫与数据抓取工具 Build Your Own X:从零实现你最喜欢的技术——程序员进阶的终极资源清单 Anthropic Skills:用文件夹教 Claude 专业技能的开源框架 1年的去月球(下) - 梅之夏 欢迎回来。 简单讲讲 ASN.1 与 OID DTV - 直播聚合客户端 5.22-5.27 – 不兴江 还没去过鸭川 – 不兴江 张晶晶同学三刷林志颖 关于我 – 不兴江 爱与嫉妒 – 不兴江 港股被持续做空 备案码花了四百块-咕咚同学 一句话生成封面:我给公众号做了4种风格的AI封面生成技能 「官」方認證 再谈费曼学习法 2026-05-28T00:34:11+08:00 2026-05-28T00:28:45+08:00 离谱的英语学习指南:基于AI的英语进阶系统方法论 iii:零集成架构的后端统一运行时 Claude Code Harness:让 Claude Code 工作有迹可循的工程化框架 Heretic:全自动移除大语言模型审查机制的开源工具 MarkItDown:微软开源的万能文档转 Markdown 利器 Harness:让 Claude Code 秒变多智能体协作工厂 这段时间尽折腾AI Agent了,确实极大地提高了效率 近期动态:两个新站点正式上线啦 误判解除!zhouayuan.com 腾讯安全申诉成功 - 周阿源|玩具设计・插画日常・生活随笔 Ralph:让 AI 编码工具自主循环跑完所有 PRD 任务的量产神器 全都违法 – 个人工作记录 关于zhouayuan.com被误判 “含违规信息” 的说明与申诉记录 - 周阿源|玩具设计・插画日常・生活随笔 小米 MiMo v2.5 Pro 白嫖 最大的人间清醒,兜里有钱,但是不花。 夜晚靓歌(12):于文文现场solo - 王志勇的Blog 今日插画:风扬起的倔强 - 周阿源|玩具设计・插画日常・生活随笔 回门习俗 独立网卡 - 忘记了回忆 500亿入股人工智能企业 从命令行到桌面智能体-咕咚同学 第一性原理读书笔记 行者微评论223-加班の守株待兔-博客|政治与时事-风雨行者 ZOZO开源物理接触求解器:GPU加速的可扩展仿真引擎 OpenStock:开源股票市场交易平台技术深度解析 MoneyPrinterTurbo:基于AI的全自动短视频生成工具深度解析 Claude-Mem:为 Claude Code 构建的持久化记忆压缩系统 Twenty:可代码化定制的企业级开源 CRM 平台技术深度解析 2026-05-26T22:59:17+08:00 企业级开源大模型部署平台 GPUStack 实战教程 1年的去月球(上) - 梅之夏 Sevalla - 静态网站托管服务 不用翻墙、不用注册、不用月费,普通人也能用上 Claude Code 装修灯具要注意⚠️ 黄梅天先锋 - 游子微博 公安备案顺利办结,站点备案全部完成 - 周阿源|玩具设计・插画日常・生活随笔 第三次兑换天猫超市卡了宗宗酱-三维狐少儿编程 Don't think, feel. - Rolen's Blog 人这一辈子,到底图个什么 博客迁移 - Edwin's Blog 情感赛道写作模板 再现本轮行情的典型特征 裁员与平常心-咕咚同学 别让“偷懒”,成为隐私泄露的破绽 片刻 - Jdeal | Life is like a Design.
Stirling PDF:功能最全的开源 PDF 处理平台,支持 50+ 工具私有化部署
Cheman · 2026-06-22 · via BlogFinder

今天在 GitHub Trending 上看到一个非常实用的项目:Stirling PDF,一个功能极其强大的开源 PDF 处理平台,支持 50 多种 PDF 操作工具,完全私有化部署,再也不用担心文档隐私泄露了。

一、项目概述

Stirling PDF(原 s-pdf)由 Stirling-Tools 团队开发维护,是一个企业级开源 PDF 编辑平台。它旨在解决一个核心痛点:PDF 处理的隐私与可控性。市面上大多数在线 PDF 工具都需要上传文件到云端处理,而 Stirling PDF 让你可以在本地或自有服务器上完成所有 PDF 操作。

核心特性

  • 多端支持:桌面客户端、浏览器 UI、自托管服务器三种运行模式,覆盖所有使用场景
  • 50+ PDF 工具:编辑、合并、拆分、签名、涂黑、转换、OCR、压缩等一应俱全
  • 无代码工作流:直接在 UI 中构建自动化处理管道,支持 API 处理百万级 PDF
  • 企业级能力:SSO 单点登录、审计日志、灵活的本地部署方案
  • REST API:几乎所有工具都提供 API 接口,可无缝集成到现有系统
  • 国际化:支持 40+ 种语言的界面

项目采用开源核心(Open Core)许可模式,基础功能完全免费,当前版本为 2.13.1

二、技术原理

架构设计

Stirling PDF 采用经典的 Spring Boot 单体架构,但通过 Gradle 多模块设计保持了良好的代码组织:

  • app/core — 主应用模块,包含 PDF 处理的核心业务逻辑
  • common — 公共工具库,提供跨模块的共享组件
  • proprietary — 专有功能模块(仅在安全未禁用时加载)
  • frontend — 前端工程,包含基于 TypeScript 的编辑器 UI

build.gradle 中可以看到,项目使用 ext.isSecurityDisabled 闭包动态判断是否加载专有模块,这种设计允许在禁用安全特性的精简模式下运行。

核心技术栈

层级技术选型说明
后端框架Spring Boot 4.0.6最新主版本,搭配 Java 25
PDF 引擎Apache PDFBox 3.0.7业界标准的 Java PDF 处理库
构建工具Gradle + Taskfile统一的构建和开发命令入口
安全组件BouncyCastle 1.84PDF 签名和加密的核心依赖
前端TypeScript + Tauri原生桌面客户端方案
容器化Docker一行命令即可部署

关键设计决策

项目在安全方面做得非常细致。在 build.gradleconfigurations.configureEach 中,可以看到一系列 CVE 强制修复策略

resolutionStrategy.force "com.google.code.gson:gson:2.13.2"
resolutionStrategy.force "org.mozilla:rhino:1.9.1"
resolutionStrategy.force "org.apache.commons:commons-lang3:3.20.0"
resolutionStrategy.force "commons-io:commons-io:2.21.0"

通过 resolutionStrategy.force 硬编码安全版本号,确保即使传递依赖引入了已知漏洞的旧版本,构建时也会被强制替换为安全版本。同时使用 pixee java-security-toolkit 作为编译时安全检查工具。

数据流分析

PDF 处理的典型数据流为:

  1. 用户通过浏览器 UI 或 API 上传 PDF 文件
  2. 请求经 Spring Boot Controller 路由到对应的 Tool Service
  3. Tool Service 调用 PDFBox / iText / LibreOffice 等引擎执行处理
  4. 处理结果直接返回给用户,不经过任何第三方服务

整个处理流程完全在用户控制的实例内闭环,这是 Stirling PDF 最大的卖点。

三、安装与快速开始

环境要求

  • Docker 部署(推荐):仅需 Docker 环境,无其他依赖
  • 桌面版:支持 Windows / macOS / Linux
  • 源码构建:Java 25+,Gradle 8.x

Docker 一键部署

docker run -d -p 8080:8080 docker.stirlingpdf.com/stirlingtools/stirling-pdf

启动后访问 http://localhost:8080 即可使用完整功能。

持久化数据

生产环境建议挂载数据卷:

docker run -d \
  -p 8080:8080 \
  -v /data/stirling-pdf/config:/configs \
  -v /data/stirling-pdf/logs:/logs \
  -v /data/stirling-pdf/custom:/custom \
  docker.stirlingpdf.com/stirlingtools/stirling-pdf

源码构建

git clone https://github.com/Stirling-Tools/Stirling-PDF.git
cd Stirling-PDF
task dev

项目使用 Task 作为统一命令入口,task dev 会启动完整的开发环境。

四、使用方法与实战

基础用法

Stirling PDF 的 Web UI 直观易用,打开浏览器后可以直接:

  1. 合并 PDF:拖拽多个 PDF 文件,一键合并为一个文档
  2. PDF 转换:支持 PDF ↔ Word、Excel、PPT、图片等多种格式互转
  3. 页面操作:旋转、删除、重排、提取指定页面
  4. 添加水印:批量添加文字或图片水印
  5. PDF 签名:数字签名和手写签名
  6. OCR 识别:对扫描件进行文字识别

进阶用法:API 自动化

几乎所有 UI 操作都有对应的 REST API。例如通过 API 合并 PDF:

API 文档地址:https://registry.scalar.com/@stirlingpdf/apis/stirling-pdf-processing-api/

无代码工作流

在企业场景中,可以构建自动化处理管道:

  1. 在 UI 中选择多个 PDF 工具串联
  2. 设置触发条件(定时、文件上传等)
  3. 定义输出路径和格式
  4. 一键发布工作流

这种方式适合批量处理合同、发票等标准化文档。

五、常见问题与解决方案

安全特性相关

Q: 启动时提示安全相关错误?

Stirling PDF 默认启用安全认证。如果在内网或测试环境不需要认证,可以设置环境变量:

docker run -e DOCKER_ENABLE_SECURITY=false -p 8080:8080 stirlingtools/stirling-pdf

Q: 如何配置 SSO 单点登录?

项目支持 SAML 2.0 SSO,使用 Spring Security SAML 模块(版本 7.0.5,搭配 OpenSAML 5.2.1)。详细配置参考官方文档。

运行时问题

Q: PDF 处理速度慢?

从 JVM 启动参数可以看到项目做了大量 GC 调优:

runtimeArgs = [
    "-XX:+UseG1GC",
    "-XX:MaxGCPauseMillis=200",
    "-XX:G1HeapRegionSize=4m",
    "-XX:+ExplicitGCInvokesConcurrent",
    "-XX:+UseStringDeduplication",
    "-XX:+UseCompactObjectHeaders"
]

如果仍需提升性能,可以增加容器内存限制并调整 G1GC 参数。

Q: 转换格式支持不全?

部分格式转换依赖 LibreOffice,需要确保 Docker 镜像中包含 LibreOffice。官方镜像已内置,自定义部署时需要额外安装。

六、总结

Stirling PDF 是目前开源社区中功能最全面的 PDF 处理平台之一。它最大的优势在于 隐私可控——所有处理都在本地完成,不需要将敏感文档上传到第三方服务。50 多种 PDF 工具覆盖了日常和企业的绝大多数需求,Docker 一键部署和完善的 REST API 更是让集成变得极其简单。

对于个人用户,它是替代 Adobe Acrobat 的免费方案;对于企业用户,它是构建文档处理服务的理想基础。如果你正在寻找一个可私有化部署的 PDF 工具,Stirling PDF 值得重点关注。

项目地址:Stirling-Tools/Stirling-PDF