工作原理

是你的瀏覽器下載 PDF 引擎,而不是反過來。下面介紹使用工具時會發生什麼,以及如何親自驗證。

簡而言之

Scissor PDF 從不接收你的檔案。開啟工具時,瀏覽器會下載網站和 PDF 引擎。選擇檔案後,檔案被讀入瀏覽器標籤頁的記憶體,由該引擎在你自己的處理器上處理,結果再以下載的形式交還給你。關閉標籤頁,一切都會被清除。

什麼在哪裡執行

負責合併、拆分、排序、旋轉、壓縮、新增頁碼、加水印、加密和解密 PDF 的 PDF 引擎用 Rust 編寫,使用開源的 lopdf 庫,並編譯為 WebAssembly。WebAssembly 是一種沙盒化格式,所有現代瀏覽器都能以接近原生的速度執行它。引擎在後臺 worker 中執行,因此頁面始終保持流暢。

頁面預覽和 PDF 轉 JPG 使用 PDF.js,這是 Firefox 內建的開源渲染器,同樣在本地執行。

伺服器只託管 PDF 工具所用的網站檔案。它沒有用於文件的上傳介面,因此根本沒有任何東西能接收文件。同一域名下有一個小型客戶服務系統,只接收你主動選擇傳送的內容(例如反饋或候補名單註冊),以及匿名的頁面訪問計數。

親自驗證

開啟瀏覽器的開發者工具,切換到“網路”標籤,然後使用任意工具。你會看到頁面自身的檔案被載入,以及發往 /_care/ 的少量匿名頁面計數請求,但沒有任何攜帶你文件的請求。你也可以在頁面載入後斷開網路:所有工具都能繼續工作。

本站還會發送嚴格的內容安全策略,讓瀏覽器阻止頁面連線任何其他伺服器。因此,即使我們的程式碼出了差錯,也無法把你的檔案傳送到別處。

離線可用,像應用一樣安裝

首次訪問後,service worker 會把網站和引擎儲存在瀏覽器快取中,因此沒有網路也能開啟和使用工具。在 Chrome 或 Edge 中,從位址列選擇“安裝”。在 Safari 中,選擇“新增到程式塢”(Mac)或“新增到主螢幕”(iPhone 和 iPad)。

本地處理的侷限

由於處理在你的裝置上進行,超大檔案會受到裝置記憶體的限制。普通筆記型電腦處理幾百 MB 沒有問題,手機也能處理日常文件。速度取決於你的處理器,而不是伺服器排隊,實際上通常比上傳再下載更快。