# Document Scanner

> 用手機相機或現有照片線上掃描文件：自動找四個角、拉正歪掉的頁面、去掉陰影變成白底黑字，多張合成一份 PDF 或各存成 JPEG。不用裝 App，照片不會上傳。

- URL: https://bytescope.dev/zh-Hant/document-scanner/
- Locale: zh-Hant · Also: [en](https://bytescope.dev/en/document-scanner.md) · [ja](https://bytescope.dev/ja/document-scanner.md)
- Runs: 檔案不會離開你的瀏覽器 — 全部在本機處理。
- Requires: Any modern browser (Chrome, Edge, Firefox, Safari), desktop and mobile, can pick photos. The live camera mode needs an HTTPS page and camera permission, and works in Safari on iOS and in Chrome, Firefox and Edge on Android — it is not limited to Chromium.
- Updated: 2026-09-08

## What it does

合約、收據、上課講義用手機拍下來，照片直接拿去交，通常不太能看：紙是梯形的、四周露出桌面、手或手機的影子在字上壓出一片灰。這一頁把那張照片變成掃描檔。在手機上直接開相機（後鏡頭，畫面裡會即時框出文件的邊）或是選已經拍好的照片，一次選很多張都行。每張照片都會自動找出四個角、把梯形拉正成長方形、去掉陰影讓紙變白字變黑，然後加成一頁。全部頁面可以存成一份 PDF，或是每頁一張 JPEG。照片不會上傳：找角、拉正、濾鏡全部在你瀏覽器裡的 worker 跑，所以也不用裝任何掃描 App。

### 找角、拉正與紙張大小

找角用的是傳統的邊緣加輪廓演算法，不是模型，所以沒有東西要下載；代價是它有一個很明確的弱點：紙跟桌面顏色很接近的時候（白紙放在白色或淺色桌面上），自動找角常常失敗，或是框到別的形狀。遇到了就自己拖那四個把手，手指上方會出現放大鏡，角落落在哪裡看得清清楚楚；放在深色桌面上效果最好。拉正做的是平面的透視校正：平放的一張紙會拉得很準，但翻開的書本跨頁、捲起來的收據只會拉正、不會把彎曲攤平。紙張大小是整份掃描共用的一個設定：「自動」會看每一頁的長寬比，接近 A4 或 Letter 就套用那個尺寸；「A4」「Letter」固定成那個尺寸；「不固定比例」照偵測到的比例，PDF 頁面就是 300 dpi 的影像大小。「自動」下如果各頁套到不同紙張，整份 PDF 會改用不固定比例，免得頁面大小跳來跳去。

### 濾鏡：原色、增強、灰階、黑白

濾鏡每一頁各自選。「原色」只拉正、顏色照舊。預設的「增強」會估算整頁光線的不均勻再把它抵消掉，所以手或檯燈在某一側壓出來的陰影會變成均勻的白底，接著再拉高對比；顏色會保留，紅色印章、螢光筆畫的線都還在。「灰階」去掉顏色、留下深淺。「黑白」把每個像素變成不是墨就是紙，純文字的印刷文件用它會得到最小、最銳利的結果——但對比不夠強的東西會全部消失：照片、淡淡的鉛筆字、淺藍色的簽名、還有大多數的印章都會不見。文件上有印章或簽名要保留的，請用「增強」，不要用「黑白」。

### 頁面與輸出

一份掃描最多 50 頁。每一頁都能上移、下移、每次轉 90 度、刪除、用相機重拍或換成另一張照片，而且各自記住自己的角跟濾鏡。太大的照片會先把長邊縮到 3200 像素再處理，A4 以 300 dpi 輸出綽綽有餘，也不會讓手機 1200 萬像素的照片把瀏覽器的記憶體吃光。輸出有兩種：一份 PDF，檔名 `scan.pdf`，用的是 `/images-to-pdf` 同一套程式加上你選的紙張；或是每頁一張 JPEG，檔名 `scan-01.jpg`、`scan-02.jpg` 依序排下去，旋轉會直接寫進像素。PDF 裡面只有圖片——這一頁不辨識文字，所以產出來的 PDF 不能搜尋也不能複製文字。要把頁面上的字抓出來，拿去 `/image-to-text`；做好的 PDF 要簽名，開到 `/pdf-sign`。

## Limits

Does not upload photos, does not recognise text (the PDF is images only, with no searchable layer), does not flatten curved pages or open books (the correction is a flat perspective transform), does not download a detection model (corner finding is a classic edge method, which often fails when paper and desk are close in colour), does not read ID cards or passports into fields, and does not sync or store scans anywhere.

## FAQ

### 不裝 App，用手機就能掃描文件嗎？

可以。用手機瀏覽器打開這一頁，按相機按鈕、允許使用相機，後鏡頭就會打開，畫面上會即時框出文件的邊，點一下就拍一頁。相機需要 HTTPS 的頁面跟你的許可，iOS 的 Safari、Android 的 Chrome、Firefox、Edge 都能用，不是只有 Chrome。沒有相機或你拒絕了，頁面會說明原因，你還是可以從相簿選照片。

### 找不到角，或是框到別的東西，怎麼辦？

自己拖。自動找角是在找紙跟背景的交界，所以兩邊顏色接近的時候常常失敗——白紙放在白色或淺色桌面上就是最常見的情況——也可能框到筆記本、鍵盤或桌子的邊。什麼都沒找到時，框會從照片邊緣往內一點的位置開始。把四個把手各自拉到角落，手指上方的放大鏡會顯示準確的位置。最有用的一件事：把紙放在深色、沒有花紋的桌面上。

### 可以去掉文件照片上的陰影嗎？

這就是「增強」濾鏡在做的事。它會估算整頁光線怎麼變化——一邊是手的影子、另一邊是檯燈、室內燈偏黃——再把這些抵消掉，背景就變成均勻的白、字還是深的，顏色也保留。它對漸層式的柔和陰影有效；邊緣很銳利的硬影子，或是深到照片裡的字已經快看不見的陰影，會留下痕跡。重拍一張、讓光從你前面來，比任何濾鏡都有效。

### 可以把書本的頁面或捲起來的紙攤平嗎？

不行。校正做的是平面透視轉換，前提是「一張平的長方形紙斜著看」。翻開的書本跨頁、捲起來的收據，四個角會拉正，但紙彎的地方文字的行還是彎的。拍之前把頁面壓平，或是一次掃半頁，都比這裡任何設定有用。

### 印章、簽名或鉛筆筆記怎麼不見了？

因為那一頁用了「黑白」濾鏡。黑白是逐個像素判斷「是墨還是紙」，對清楚的印刷文字很理想，對中間那些東西就很不友善：淡淡的鉛筆、淺色的簽名、照片、還有大多數的印章都會被判成紙而消失。把那一頁改成「增強」，它會去陰影但保留顏色跟深淺。濾鏡是每頁各自選的，所以有印章的那張用增強，其他純文字的頁面繼續用黑白就好。

### PDF 裡的文字可以搜尋或複製嗎？

不行。這一頁不辨識文字，寫出來的 PDF 只有圖片、沒有文字層——它看起來像掃描檔，行為也跟掃描檔一樣。要把頁面上的字抓出來，把同一張照片或掃好的 JPEG 丟到 `/image-to-text`，它會在瀏覽器裡跑 OCR，給你可以複製的文字。

### 照片會上傳到哪裡嗎？

不會。相機畫面、你選的照片、找角、透視校正、濾鏡到最後的 PDF，全部留在你的瀏覽器裡；處理在 web worker 跑，下載檔是從記憶體直接組出來的。這一頁背後沒有伺服器——你掃的是合約、收據、寫著名字的作業，這一點才重要。

### PDF 的紙張大小怎麼決定？

整份掃描共用一個設定。「自動」會看每一頁校正後的長寬比，跟 A4 或 Letter 差不到幾個百分點就用那個尺寸；「A4」「Letter」固定成那個尺寸、頁面縮放到剛好塞進去、不留邊；「不固定比例」照偵測到的比例，PDF 頁面就是 300 dpi 的影像大小，收據跟奇怪的尺寸選這個最合適。「自動」下不同頁套到不同尺寸，整份 PDF 會改用不固定比例，頁面大小才會一致。濾鏡則是另一回事，每頁各自選。

## Related tools

- [Image to Text](https://bytescope.dev/zh-Hant/image-to-text.md) — 用 OCR 把掃描頁上的文字抓出來，全程在瀏覽器裡。
- [Images to PDF](https://bytescope.dev/zh-Hant/images-to-pdf.md) — 圖片已經很乾淨？直接合成一份 PDF，紙張大小和邊界自己設。
- [Sign PDF](https://bytescope.dev/zh-Hant/pdf-sign.md) — 把做好的 scan.pdf 簽好名再寄出去。
