"文件不上传"是一句很容易说、但很难自证的承诺。这篇文章从技术角度解释 LocalPDF 具体是怎么实现的,你也可以照着文中的方法自己验证。
整个编辑流程发生在哪里
LocalPDF 是一个纯前端应用——打开网页时,浏览器会下载一份 JavaScript 代码,之后所有的操作都由这份代码在你自己的浏览器进程里运行完成,具体分三个阶段:
- 解析和渲染:使用开源库
pdf.js(由 Mozilla 维护,Firefox 内置的 PDF 查看器用的就是它)在浏览器里读取 PDF 的内部结构,把每一页画到<canvas>元素上显示出来。 - 编辑:你添加的文字、高亮、图片等操作,都只是在浏览器内存里维护的一份数据结构上做修改,还没有生成最终文件。
- 导出:点击"下载"时,使用另一个开源库
pdf-lib把内存里的编辑结果重新组装成一份标准 PDF 文件,通过浏览器原生的下载功能直接保存到你的设备——这个过程同样完全在本地完成。
为什么这意味着"不需要"上传
因为解析、渲染、编辑、导出这四步都不依赖服务器提供计算能力——服务器只在你第一次打开网页时把 JavaScript 代码发给你,之后就不再参与。你的 PDF 文件内容本身,从头到尾只存在于你自己电脑的浏览器内存里。
你可以自己验证
- 打开 LocalPDF 页面,按 F12(或右键"检查")打开开发者工具。
- 切换到 Network(网络)标签。
- 拖入一个 PDF 文件,进行编辑、下载。
- 观察网络面板——你会看到页面加载时的几个静态资源请求,但不会有任何把你的 PDF 内容发送出去的请求。
- 更进一步:加载完页面后断开网络连接,再重复上述编辑流程,你会发现依然可以正常使用。
不用只听我们说——打开开发者工具,亲自验证一遍。
打开 LocalPDF →