为什么我构建了一个100% 客户端 PDF 工具包(以及隐私为何重要)
Source: Dev.to
每次将 PDF 上传到在线工具时,都是在把你的数据交给陌生人。税务文件、合同、个人文件——它们都会经过别人的服务器。我想改变这种情况。
传统 PDF 工具的问题
大多数在线 PDF 工具的工作方式如下:
- 你将文件上传到他们的服务器
- 他们的服务器处理文件
- 你下载处理后的结果
- 你的文件会一直保留在他们的服务器上……永远?
即使有隐私政策,也无法真正保证你的数据会怎样处理。对于敏感文件,这就是致命问题。
解决方案:100% 客户端处理
我创建了 PDFClic —— 一个免费 PDF 工具箱,所有操作都在浏览器中完成。你的文件永远不会离开你的设备。
它是这样工作的:
// All processing happens locally using pdf-lib
import { PDFDocument } from 'pdf-lib';
async function mergePDFs(files) {
const mergedPdf = await PDFDocument.create();
for (const file of files) {
const pdfBytes = await file.arrayBuffer();
const pdf = await PDFDocument.load(pdfBytes);
const pages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());
pages.forEach(page => mergedPdf.addPage(page));
}
return await mergedPdf.save();
}
神奇之处?像 pdf-lib 这样的库让你可以完全在 JavaScript 中操作 PDF,无需服务器往返。
你可以在客户端构建的功能
PDFClic 目前提供 27+ 工具,全部在本地运行:
- 合并 & 拆分 — 合并或分离 PDF 页面
- 压缩 — 在不损失质量的情况下减小文件大小
- 转换 — PDF 与图片、Word、Excel 之间相互转换
- 签名 — 在浏览器中直接添加签名
- OCR — 从扫描文档中提取文本
- 保护 — 添加或移除密码
技术栈
构建以隐私为先的工具需要正确的选择:
- Next.js 15 — 前端框架
- pdf-lib — 核心 PDF 操作
- Tesseract.js — 客户端 OCR
- Web Workers — 在繁重处理期间保持 UI 响应
关键洞察:现代浏览器足够强大,能够完成过去需要服务器才能实现的功能。
为什么以隐私为先的工具很重要
这种方法不仅仅针对 PDF。同样的理念也适用于:
- 虚拟键盘 如 AnyKeyboard —— 在任何语言下输入而不受键盘记录器监控
- 图像编辑器 —— 在不上传云端的情况下编辑照片
- 文档转换器 —— 本地转换文件
每个在客户端处理数据的工具都从设计上尊重你的隐私。
亲自尝试一下
如果你需要处理 PDF,试试 PDFClic 吧。它免费,无需注册,且你的文件始终保留在你的设备上。
对想要构建以隐私为先工具的开发者来说:浏览器的能力超出你的想象。可以从 pdf-lib(处理 PDF)、Tesseract.js(OCR)和 Web Workers(提升性能)开始。
你使用或构建了哪些以隐私为先的工具?在下方留言吧!