它做什麼
把一台手機鏡頭,變成一台文件掃描器。
下面這一切都在這個分頁裡、在這台裝置上執行。頁面載入完之後,這裡沒有任何東西需要帳號、訂閱或網路連線。
找到紙張
你移動鏡頭時,紙張的輪廓會即時畫出來;如果輪廓找錯了邊,四個角都可以拖。
把透視擺正
斜著拍下來的一頁紙會變回方正的矩形,就像它是平放在平台式掃描器上、而不是單手舉著拍的。
整理光線
陰影、偏黃的檯燈光、手機照片特有的灰濛濛,都會被抹平,於是紙是白的,字是黑的。
讀出文字
OCR 會跑過每一頁,所以你拿到的 PDF 是可以在裡面搜尋、可以選取文字的,而不是一張文件的照片。
拼成多頁 PDF
繼續拍就是了;頁面會收進一個暫存區,寫出文件之前你可以在那裡重新排序、旋轉或刪掉某一頁。
留在裝置上
做好的掃描件存在這個瀏覽器自己的儲存空間裡。你想怎麼匯出都行,沒有哪台伺服器上留著一份。
運作方式
每一步都發生在你自己的機器上。
掃描核心用 Rust 寫成,編譯為 WebAssembly —— 經 gzip 壓縮後傳輸 139 KB。它跑在分頁內的背景 worker 裡,所以在一張 1200 萬畫素的照片上拖亮度滑桿也不會卡。
找出紙張
你移動時,取景框裡會即時描出紙張的輪廓。輪廓不對的話,把四個角中的任一個拖到正確的位置上。
把它擺正
你拍下的那個四邊形會被映射回矩形,尺寸按紙張離鏡頭最近的那條邊來定,這樣清晰的細節一點都不會被丟掉。
整理乾淨
照片、增強或黑白三種模式,另有亮度與旋轉。增強會把紙拉回白、把字拉回黑,同時不把兩頭壓死。
讀出它
裝置本機的文字辨識會在頁面影像後面放一層隱形文字,於是 PDF 既可搜尋、可選取,看上去又還是那張掃描件。
產生 PDF
增加、重排、刪除頁面,都不限數量。紙張可選 A4、Letter、Legal 或掃描件本身的形狀,壓縮力道也可以自己定。
留著,或者不留
做好的文件留在這個瀏覽器裡,可以跨你做過的每一份掃描件搜尋 —— 搜的就是辨識在裡面讀出的那些詞。
免費,而且開源 —— 全部功能,不必註冊、沒有浮水印、不限頁數。
它還在哪裡跑
iPhone、iPad 與 Android 版本也在做。
上面那台掃描器能在任何現代瀏覽器裡跑,包括你手機上的那個。今天的產品就是它的全部。同一套 Rust 核心也在被裝進原生應用程式,這樣相機、檔案選擇器與離線儲存就來自系統而不是瀏覽器分頁 —— 掃描程式碼一模一樣,只是為手機編譯了一遍。
- 可用 在你的瀏覽器裡 全部功能,任何裝置。把它加到主畫面,它就像一個應用程式一樣開啟,也能離線用。
- 候選發行版 Android 一個今天就能側載的原生版本。還很早期 —— 它只把照片送到掃描引擎為止,再往後就沒有了。
- 進行中 iPhone 與 iPad 同一個引擎,兩台上都能跑,並且為 iPad 做了排版。還沒有簽名散布,所以現在沒有東西可下載。
隱私
唯一一台你能自己核實隱私說法的掃描器。
每一款掃描應用程式都說你的文件是私密的。在原生應用程式裡,那是一句你無從核查的承諾。在這裡,它是你可以親眼看著發生的事:打開開發者工具,切到網路面板,掃描一頁。應用程式載入完之後,不再有任何請求。
- 核心構不到網路 負責掃描的那個 Rust 模組裡沒有編進任何 HTTP 用戶端,也沒有任何網路相依。根本不存在一條通往伺服器的程式碼路徑。
- 文字辨識是從這裡發出去的 辨識引擎通常會從公共 CDN 取模型,那等於你每掃描一次就告訴第三方一次。這裡的每一個位元組都改由本站提供。
- 跨來源請求是被拒絕,而不只是被避開 一個 service worker 擋在頁面發出的每一個請求前面,凡是去往其他來源的,一律以 403 回絕 —— 所有方法都一樣,不只是讀取。
- 掃描不需要帳號 這裡沒有什麼要註冊,也沒有哪個功能藏在登入之後。確實有一個選用帳號 —— 它負責把點數帶到我們其他應用程式裡 —— 但你的文件由你的瀏覽器存在你的裝置上,從不進入它。
- 沒有廣告、沒有追蹤器、沒有第三方統計 本頁不載入任何第三方指令碼,也不設定 cookie;只要有一個請求離開本來源,它的測試套件就會失敗。
價格
免費。全部。
這個頁面上的每一項功能都是免費的:不限頁數、沒有浮水印、沒有試用期、不必帳號。這裡沒有一個付費方案在等著把你推過去,因為一切都跑在你自己的裝置上,對我們來說不花一分錢。
它取代的那些掃描應用程式,要收訂閱費才去掉浮水印、給一份文件的頁數設上限,或者把你的掃描件存在他們的伺服器上。這一個一樣都不做,而且原始碼是公開的,你可以自己查。
疑問
在你掃描任何東西之前。
- 離線能用嗎?
- 可以。頁面載入完之後,沒有網路它也照常運作,文字辨識也一樣 —— 而文字辨識正是通常需要伺服器的那一步。
- 有手機應用程式嗎?
- 這個頁面就是。把它加到主畫面,它會像任何應用程式一樣開啟、能離線使用、能呼叫後鏡頭。以同一套掃描程式碼寫成的 iPhone、iPad 與 Android 原生版本也在進行中,但還很早期。瀏覽器版才是完整的那個。
- 需要帳號嗎?
- 不需要。這裡沒有任何東西藏在登入之後。有一個選用帳號,用來把點數帶到我們其他應用程式裡;你掃描的東西從不屬於它的一部分。
- 文字辨識支援哪些語言?
- 目前是英文。辨識出的文字會作為一個隱形圖層寫進 PDF,這一層現在只承載拉丁字母 —— 編碼不了的詞會被排除在可搜尋層之外,而不是寫成亂碼,頁面影像本身不受影響。
- 我的文件存在哪裡?
- 在這個瀏覽器裡,在這台裝置上。不在伺服器上 —— 這也表示它們不會出現在你的其他裝置上,而清除瀏覽資料就會把它們一併清掉。
- 真的是開源的嗎?
- 是的 —— 全部程式碼,採用 MIT 或 Apache-2.0 授權。