基于 PDFium + Swift,我 开发了一个 PDF 阅读器(macOS版本)

204 阅读2分钟

作为一名独立开发者,我一直想做一款跨平台的PDF 阅读器,能覆盖 macOS、Windows 和 Android,让更多用户能轻松高效地阅读、标注和处理 PDF 文件。

这次先发布了 macOS 版本,底层渲染引擎采用的是 PDFium,配合 Swift 开发 UI,目标是在性能、扩展性和用户体验之间做一个平衡。

🎯 为什么选择 PDFium?

  • PDFium 是 Chromium 的 PDF 渲染核心,性能好、开源、跨平台。
  • 作为 Chromium 子项目,几乎每天都有更新,跟进 PDF 标准和安全补丁。
  • 本身是用 C++ 编写,官方支持 Windows、macOS、Linux、Android 等多个平台。

🛠️ 实现了哪些功能?

目前 macOS 版已经上线,支持的功能包括:

  • ✅ 有边框有网格和有边框无网格表格识别与复制(仅支持可编辑 PDF)
  • ✅ PDF 高质量渲染(使用 PDFium)
  • ✅ 多种标注工具:高亮、删除线、下划线等
  • ✅ 黑白阅读模式(适合长时间阅读)
  • ✅ 快速滚动、分页导航等优化

🧩 技术难点 & 坑点

独立开发 PDF 应用的难度远比我想象中大,尤其在以下几个方面花了很多时间:

  1. 理解 PDF 文件结构:尤其是要做表格提取,必须理解文本块、边框线、流式内容等的底层布局。
  2. 阅读和适配 PDFium 源码:为了做源码级调试,采用了脚本来提取构建动态库的源码。
  3. 表格提取算法:线段提取、分组、单元格合并、表格构造、填充单元格。
  4. PDF 渲染:采用了预览加高清分块双图层和异步渲染实现快速滚动和缩放的流畅效果。

📈 未来规划

  • ✅ 增强 PDF 编辑能力(如文本修改、段落合并)
  • ✅ 提供更多学术工具(如橡皮擦,荧光笔等)
  • ✅ 跨平台发布(Windows、Android 版本已在规划中)

现在 App 已经上线,欢迎 mac 用户试用,也欢迎交流开发经验、踩坑记录、或产品反馈~

App Store下载地址👇👇👇 Rainbow PDF

我会定期在群里发布更新日志,也欢迎大家反馈 Bug、提需求!

💬 收集用户反馈中!

我希望能做出一款真正 “实用、轻量、平价” 的 PDF 阅读器,如果你愿意参与测试或提出建议,非常欢迎加入微信群讨论:


欢迎点赞、收藏、评论交流,一起打造好用的 PDF 工具 🙌