上个月在 GitHub 上star 增长最多的一个 Java 项目是 Stirling-PDF,单月增长了 5500多个 star,到目前为止 star 个数已经超过 28K 了。
可以说这个项目是一个 Java 项目,更准确的说是一个web端产品,而关注量这么大的项目并没有用到什么所谓高大上的前后端分离架构,而是用的 Spring Boot + Thymeleaf。可见对于一个产品、一个项目来说,技术是不是高大上不太重要,重要的是其内在价值。
Stirling-PDF 是什么
看名字就应该能看出来,这是一个 PDF 相关的项目,如果你曾经搜索过「在线 PDF」这类的关键词,相信你应该见过与之类似的网站,这类网站把 PDF 常用操作全都放到网页端,什么PDF合并拆分、PDF转各种格式、各种格式转PDF、加水印等等一大堆的功能。
Stirling-PDF 也是这样一个网站。
包括下面这些功能:
页面操作:查看和修改 PDF,包括注释、绘图、添加文本和图像等。
合并/分割/旋转/移动 PDF 及其页面的完整交互式 GUI。
转换操作:支持 PDF 与图像、Word、Powerpoint 等格式的转换。
安全与权限:添加/删除密码、更改权限、添加水印、认证/签署 PDF、清理 PDF 等。
其他操作:添加签名、修复 PDF、检测删除空白页、比较 PDF、添加图像、压缩 PDF、提取图像、添加页码、OCR、PDF/A 转换、编辑元数据、拼合 PDF、获取 PDF 信息等。
要知道同类型的网站靠「一般功能免费、高级功能收费」的策略,一年能赚几百万呢。所以Stirling-PDF 的开源可谓是非常无私了。
Stirling-PDF 项目
Stirling-PDF 是一个强大且本地托管的基于 Web 的 PDF 操作工具,使用 Docker 进行部署。它支持多种 PDF 文件操作,如分割、合并、转换、重组、添加图像、旋转、压缩等。该应用程序已发展成为一个功能全面的套件,满足用户对 PDF 的各种需求。
GitHub 仓库地址:https://github.com/Stirling-Tools/Stirling-PDF
主要特性:
深色模式支持
自定义下载选项
并行文件处理和下载
与外部脚本集成的 API
可选的登录和身份验证支持
技术栈:
Spring Boot + Thymeleaf
PDFBox
LibreOffice(高级转换)
OcrMyPdf
HTML, CSS, JavaScript
Docker
PDF.js
PDF-LIB.js
支持使用本地化部署和 Docker 两种部署化方式。
Stirling-PDF 提供两个版本:完整版和超精简版。用户可以根据自己的需求选择合适的版本。
目前支持 28 种语言,包括英语、阿拉伯语、德语、法语、西班牙语、简体中文、繁体中文等。
允许用户轻松定制应用程序,例如自定义应用程序名称、标语、图标、HTML、图像、CSS 等。
如何使用 Stirling-PDF
当作 SDK 使用
作为一个开发者,Stirling-PDF 提供了一套完整的 PDF 操作方法,我们可以把前端相关的内容去掉,只保留后端服务接口,完全当做一个 PDF SDK 使用。
作为一个去年还为了一个 PDF 转 Word 功能苦苦挣扎的人来说,我拿到这个开源项目首先试了是 PDF 转 Word 功能,我发现转换效果非常好。当初我差不多把开源的 PDF 包都挨个试了一遍,因为要转换的 PDF 格式复杂而且页码比较多,总是有各种各样的问题,如果早点发现它,应该会省不少事儿。
直接公网部署赚钱
作为开发者应该清楚 PDF 这种文件格式是有点变态的,也不是说它不好,而是它确实不好。纯纯的用来展示还不错,一旦要修改那就麻烦了,何况是非技术人员,更是无从下手。
有不少非计算机专业的朋友问过我怎么修改 PDF 内容,能找到的那些能够编辑 PDF 的工具基本上都是收费的,不花钱就很难找到能用的工具。
已经有人改个标题将 Stirling-PDF 部署一套,然后赚广告费了。
只要能搞到流量,马上就能赚到钱,功能开发的成本几乎为零。
私有化部署
也可以把它部署到公司内网中,给公司内部人使用。对于非技术岗比较多的企业来说,部署一套Stirling-PDF,应该能提升一些工作效率。
不说了,我要部署一套去了。