我构建了一个基于浏览器的 PDF 转换器,以停止将敏感文件上传到随机网站 #showdev #webdev #javascript #privacy

发布: (2026年5月9日 GMT+8 04:07)
3 分钟阅读
原文: Dev.to

Source: Dev.to

概览

在把感觉上第 100 份敏感合同上传到“免费”PDF 网站后,我意识到根本不知道这些文件会去向何方。为了保持文档私密,我构建了 BunnyConvert,这是一套 24 种 PDF 工具,全部在浏览器中使用 JavaScript 运行。

功能

  • 签署 PDF – 手写体字体,拖拽定位签名(支持触摸 + 鼠标)
  • 合并 / 拆分 / 压缩 / 旋转 PDF
  • 转换 JPG/PNG/HEIC → PDF
  • 导出 PDF → Word / Excel / PowerPoint / 图片
  • 水印保护解锁 PDF
  • 图片尺寸调整CSV ↔ JSON 转换
  • 原生 JS 前端(不使用 React/Vue)

技术细节

  • 使用 pdf-lib 进行 PDF 操作
  • 使用 pdf.js 在浏览器中渲染 PDF
  • 使用 heic2any 进行 HEIC 解码
  • 使用 Capacitor 作为 Android 包装器
  • 使用 Supabase 进行可选择的分析(除非用户选择,否则不发送任何数据)

所有处理均在客户端完成;文件从不触及服务器。你可以在 DevTools 的 Network 面板中验证——没有任何外发文件请求。

关键挑战

  • pdf-libStandardFonts 不支持土耳其字符,因此我嵌入了自定义 TTF。
  • 用原生 JS 实现类似 DocuSign 的签名定位,需要同时处理触摸和鼠标拖拽事件。
  • 由于 “受限广告投放” 限制,AdMob 的生产审批对新发布者可能需要 2–4 周时间。

隐私

因为所有操作都在本地进行,你的文档始终保留在设备上。唯一的网络活动是可选的分析功能,且可以关闭。

价格

  • 免费层 – 每日额度,适用于有限使用。
  • 专业层 – $4.99 / 月,提供无限转换和移动端无广告体验。

链接

  • 网页应用:
0 浏览
Back to Blog

相关文章

阅读更多 »