工作原理

是你的浏览器下载 PDF 引擎,而不是反过来。下面介绍使用工具时会发生什么,以及如何亲自验证。

简而言之

Scissor PDF 从不接收你的文件。打开工具时,浏览器会下载网站和 PDF 引擎。选择文件后,文件被读入浏览器标签页的内存,由该引擎在你自己的处理器上处理,结果再以下载的形式交还给你。关闭标签页,一切都会被清除。

什么在哪里运行

负责合并、拆分、排序、旋转、压缩、添加页码、加水印、加密和解密 PDF 的 PDF 引擎用 Rust 编写,使用开源的 lopdf 库,并编译为 WebAssembly。WebAssembly 是一种沙盒化格式,所有现代浏览器都能以接近原生的速度运行它。引擎在后台 worker 中运行,因此页面始终保持流畅。

页面预览和 PDF 转 JPG 使用 PDF.js,这是 Firefox 内置的开源渲染器,同样在本地运行。

服务器只是一个普通的静态文件托管。它没有上传接口、没有数据库,也没有应用程序代码,因此根本没有任何东西能接收文档。

亲自验证

打开浏览器的开发者工具,切换到“网络”标签,然后使用任意工具。你会看到页面自身的文件被加载,但没有任何携带你文档的请求。你也可以在页面加载后断开网络:所有工具都能继续工作。

本站还会发送严格的内容安全策略,让浏览器阻止页面连接任何其他服务器。因此,即使我们的代码出了差错,也无法把你的文件发送到别处。

离线可用,像应用一样安装

首次访问后,service worker 会把网站和引擎保存在浏览器缓存中,因此没有网络也能打开和使用工具。在 Chrome 或 Edge 中,从地址栏选择“安装”。在 Safari 中,选择“添加到程序坞”(Mac)或“添加到主屏幕”(iPhone 和 iPad)。

本地处理的局限

由于处理在你的设备上进行,超大文件会受到设备内存的限制。普通笔记本电脑处理几百 MB 没有问题,手机也能处理日常文档。速度取决于你的处理器,而不是服务器排队,实际上通常比上传再下载更快。