Sign X PDF · 指南
瀏覽器 PDF 工具如何運作
瀏覽器 PDF 工具可以在不把文件送到應用伺服器的情況下編輯檔案。網站指令碼與資源載入後,所選 PDF 以瀏覽器檔案 API 讀取,並以用戶端程式庫(有時加上 WebAssembly)在分頁內處理。Sign X PDF 的簽署、合併、壓縮、重排與刪頁流程即建基於此模式。
說明反映 Sign X PDF 的瀏覽器架構意圖。請依你的威脅模型在實際網站上核實功能與網絡行為。
本機處理與「完全沒有網絡」不同
本機文件處理是指你所選的 PDF 位元組,不會為了轉換或儲存而上傳至 Sign X PDF 伺服器。這不代表瀏覽器完全不使用網絡。
與一般網站相同,開啟應用時仍會下載 HTML、JavaScript、字型、圖像與 WASM。完成暖載入後,編輯主要使用已下載資源與本機檔案。
開啟 PDF 時發生甚麼
你以檔案選擇器或拖放選取檔案。頁面取得 File/Blob,讀入記憶體(例如 ArrayBuffer)。預覽與編輯在頁面或 Worker 中對該記憶體副本進行,而不是在伺服器上的文件副本。
- 輸入:瀏覽器 File/Blob API
- 預覽:用戶端 PDF 渲染(pdf.js 類流程)
- 編輯:用戶端程式庫重組 PDF 結構
- 輸出:下載新檔案到裝置
Sign X PDF 中的程式庫角色
Sign X PDF 把重型引擎拆開,讓搜尋引擎與首次繪製不需要完整 PDF 執行環境。工具頁是預渲染 HTML 外殼;你使用工具時才以用戶端 island 載入編輯器。
- pdf.js — 瀏覽器內頁面渲染/預覽
- pdf-lib — 多項組裝與匯出(JavaScript)
- QPDF(WebAssembly)— 部分密碼與結構保留操作(Worker)
- 簽名板/圖像工具 — 建立可見簽名後再放置
Worker 與 WebAssembly
部分工作在 Web Worker 執行,以保持介面順暢。QPDF 編譯為 WebAssembly,下載後在瀏覽器程式執行,不是遠端 PDF 服務。
WASM 與 worker 指令碼是一般靜態資源,會出現在網絡面板,這與把機密 PDF 上傳到 API 端點不同。
如何自行檢查私隱聲稱
開啟開發者工具,在開啟並匯出一個獨特檔名的測試 PDF 時觀察網絡面板,確認文件沒有被 POST 到 Sign X PDF 應用端點。專案亦有自動化私隱測試,對可疑請求模式採失敗關閉策略。
瀏覽器擴充功能、作業系統服務或日後功能仍可能影響網絡行為——若威脅模型嚴格,請自行覆核。
實際限制
用戶端處理受裝置記憶體與 CPU 限制。極大掃描檔、同時多檔或低記憶體手機可能變慢或失敗。受密碼保護的 PDF 可能需先解鎖。壓縮效果取決於內容(影像型與文字型 PDF 不同)。
我們如何驗證
私隱網絡 e2e(Playwright)
Result: 簽署/合併匯出測試中,未觀察到 PDF 文件位元組上傳至應用程式端點
Scope: 自動化測試用 fixture PDF
Limits: 不涵蓋所有瀏覽器擴充功能或作業系統行為
Source: tests/e2e/privacy-no-upload.mjs
架構/用戶端島
Result: PDF 引擎以用戶端島載入;首頁不預載 pdf.worker 或 QPDF WASM
Scope: 建置產物與程式碼分割迴歸測試
Limits: 量測的是建置產物,非所有執行期路徑
Source: tests/build/performance-phase2.test.ts
常見問題
瀏覽器 PDF 工具會上傳我的檔案嗎?
有些會。Sign X PDF 的設計是讓所選 PDF 在瀏覽器處理,而不上傳至 Sign X PDF 伺服器作工具處理。對機密文件,請在任何網站以網絡面板自行核實。
為何仍會看到網絡請求?
網站資源(HTML、JS、字型、WASM)會經網絡載入。本機處理指的是你的文件位元組,不是網站本身零流量。
WebAssembly 在這裏做甚麼?
QPDF 以 WebAssembly 發佈,讓進階 PDF 操作可在下載後於裝置上執行。它不是遠端轉換伺服器。
這等同離線模式嗎?
不一定。離線使用需要瀏覽器已快取應用資源,並經暖載入後實際驗證。在未於你的裝置測試前,請勿假設飛航模式可用。