# PDF 塗黑 字是刪掉的，不是蓋上一個黑塊

字從檔案裡刪掉，然後再搜一遍這個檔案來證明。

> 把字從 PDF 裡拿掉，而不是在上面畫個黑塊。字是從繪製這一頁的指令裡刪掉的，做好的檔案會被重新開啟搜一遍，證明它們真的沒了，而且什麼都不會上傳。

本頁是一個完全在你的瀏覽器裡執行的互動式工具，地址是 https://abox.tools/zh-TW/redact-pdf/。你交給它的任何內容都不會被上傳。下面是這個頁面用文字對該工具的全部說明；要使用它，請開啟這個地址。

## 你的文件**不會上傳**。這裡根本沒有伺服器。

你選的那份文件，開啟、讀取、修改、寫回，全都在這臺機器的記憶體裡完成，用的是從這個地址發來的程式碼。這裡根本沒有能做上傳的東西，這一頁的另一頭也沒有伺服器可以接收。檔案不會離開這個分頁，你搜的那些詞也不會。

- ✗ 不上傳
- ✗ 不用註冊
- ✓ 斷網也能用
- ✓ 開源
- ✓ 檔案留在你的裝置上

## 怎麼塗黑一份 PDF，讓那些詞真的消失

1. **選 PDF。** 一次只處理一份文件，這是故意的。塗黑是一件必須一頁一頁看過去的工作，而一個讓你在這份檔案裡勾詞、又悄悄把它用到另一份上的工具，正是錯的東西被發出去的那條路。檔案由瀏覽器直接從你的硬碟讀取。
2. **說清什麼要走。** 把詞打進去，姓名、地址、案號都行，它們出現的每一處都會連著所在的那一行、帶一個勾選框列出來。框旁邊那些檢測項會去找電子信箱、卡號、IBAN、身份證號和社保號，以及電話號碼。它們只是列給你看，絕不替你勾上，因為一個模式分不清電話號碼和案號。
3. **讀這一頁，從上面挑詞。** 這一欄顯示的是文件裡實際存著的文字，順序是讀的人複製時會得到的順序。點任何一個詞就是拿掉它，再點一下就是留下它。劃了橫線的就是要消失的，所以這一步既是挑選也是複核，按下按鈕之前每一頁都值得這麼過一遍。
4. **拿掉它們，再讀那行寫著已經查過的字。** 字被刪掉，它們空出來的寬度保留著，你要的話上面畫一個黑塊，同樣的詞也會從書籤、註解、表單域和文件屬性裡拿走。然後做好的檔案會在這裡重新開啟、重新搜一遍。要是你拿掉的某個詞還搜得到，你拿不到下載，只會拿到一句說明這件事的話。

## 說得更細的版本

[怎麼把 PDF 塗黑，讓文字真的消失](https://abox.tools/zh-TW/guides/redact-a-pdf/): 在 PDF 閱讀器裡畫的黑塊，通常把詞原封不動地留在了下面，複製貼上就能拿回去。真正的塗黑拿掉的是什麼，詞在頁面之外藏身的四個地方，以及發出去之前怎麼檢查一個檔案。

## 工具箱裡還有

- [PDF 轉 CSV](https://abox.tools/zh-TW/pdf-to-csv/): 把 PDF 裡的每一張表都找出來，變成表格軟體打得開的一行一行。
- [圖片轉 PDF](https://abox.tools/zh-TW/images-to-pdf/): 把你的圖片裝進一個文件。
- [文件掃描](https://abox.tools/zh-TW/document-scanner/): 把紙拍下來，回來的是一份看起來像掃描的東西。
- [從影片裡提取音訊](https://abox.tools/zh-TW/extract-audio-from-video/): 把影片拖進來，聲音就取出來了。畫面從不解碼，也不上傳任何東西。

## 常見問題

### 這跟在 PDF 閱讀器裡畫個黑塊有什麼不一樣？

在閱讀器裡畫的方塊是一個註解，一個帶位置的物件，存在頁面旁邊。它下面的文字分毫未動。誰把那塊區域選中按複製、誰把檔案在別的程式裡開啟、誰拿任何一個文字提取器過一遍，都能把詞拿回去。有些閱讀器提供的「redact」命令確實會真的執行刪除，也有好幾款只提供畫方塊。這個工具沒有什麼方塊可以挪開：字是從頁面的繪製指令裡切掉的，而那個黑塊，如果你留著它，是事後畫在一處早就空了的位置上。

### 我怎麼知道那些詞真的沒了？

因為這個工具會在你的機器上查一遍，並且把數量給你看。檔案寫完之後，它會被這一頁上同一個讀取模組重新開啟，每一頁重新讀，每一個書籤、註解、表單域和屬性都收集起來，再把你拿掉的每一個詞搜一遍。結果那一行會寫清原來有多少、現在還剩多少。答案要是不對，這一次就失敗，什麼都不給下載。你也可以事後自己查：在任何閱讀器裡按 Ctrl+F 搜那個詞。

### 拿掉一個詞，這一頁別的地方會移位嗎？

不會。文字是靠一支筆在頁面上往前推著畫出來的，所以刪掉五個字元，照常理會把這一行剩下的部分往左拽五個字元。被刪部分的確切寬度會從字型自己的度量裡量出來，再作為一條字距指令放回去，那條指令只挪筆，不畫任何東西。表格的列還是對齊的，合計還在它自己的表頭下面。

### 掃描出來的文件能塗黑嗎？

圖不能，而且它照實說，不裝。掃描檔是一頁紙的照片，上面的詞是畫素，沒有可拿走的文字。不過掃描檔常常還帶著一層看不見的文字，是掃描器的 OCR 寫在圖上面、為了讓這一頁可以搜尋的。這個工具會找到那一層，從裡面拿掉你挑的內容，並在頁面上告訴你圖沒有變。於是搜尋和複製再也找不到那個詞，而看著這一頁的人還是讀得到。要處理圖本身，[圖片塗黑](https://abox.tools/zh-TW/redact-image/)會去覆蓋畫素。

### 文件裡那些不在頁面上的部分呢？

也一起處理，因為塗黑漏掉的通常正是那裡。同樣的詞會從書籤、註解和便籤裡拿走，從表單域裡填過的內容裡拿走，從給螢幕閱讀器的文字裡拿走，也從閱讀器用來*代替*頁面上那些字元去複製的替換文字裡拿走。最後這一樣存在的意義是讓連字和行末斷開的詞能正確複製，而它裡面可以裝下一整句話。文件屬性和 XMP 包整個刪除。附件和檔案開啟時會執行的東西全部丟棄，因為這兩樣都沒法拿你要刪的詞去搜。

### 我的文件會被上傳嗎？

不會。檔案的讀取、修改和寫出全都由你自己的瀏覽器在你自己的硬體上完成。這個工具根本沒有伺服器那一半，頁面的 `Content-Security-Policy` 裡寫著它能聯絡的每一個地址，沒有一個屬於本站。你在搜尋框裡打的字，是拿來跟這個分頁記憶體裡的文字比對的，它也不去任何地方。

### 為什麼不能像別的工具那樣在頁面上拖一個框？

因為畫出一頁來意味著一個完整的 PDF 渲染器，字型、漸變、透明度、混合模式全都要，那是一兆以上的引擎要去取來執行，而本站根本不發這種東西。這件事反倒正合適：拖一個方塊選中的是*紙上的一塊區域*，而紙上的一塊區域跟它下面的文字不是同一樣東西，黑塊那個失誤正是從這裡開始的。你拿到的是文件的文字，按閱讀順序排好，每個詞都可以點。而且這也是唯一一種能告訴你「眼前這些詞到底是不是文字」的檢視，一張頁面的圖片說不出這一點。

### 做好的檔案到哪裡都打得開嗎？

打得開。輸出寫成 PDF 1.5，或者你給的那份檔案所需要的最高版本，而 1.5 是 2003 年以後出的每一個閱讀器都懂的。頁面上的東西沒有一樣被重新編碼：字型、圖片和向量圖形逐位元組原樣透過，所以留下的文字還跟原來一樣可以選中、可以搜尋。

### 它能開啟帶密碼的 PDF 嗎？

不能，而且這是故意的。加密的文件會被拒收，並附上一句說明，密碼是空的時候也一樣，而很多掃描器和影印機就是那樣存的。去掉一個檔案的保護，跟從裡面拿走幾個詞是兩件事，一個悄悄替你做掉的工具，做的是你沒要求過的事。

### 有大小限制嗎？要錢嗎？

工具裡沒有寫死任何限制。限制是你自己的機器：處理期間文件放在記憶體裡，所以筆記本吃下幾百 MB 不會有意見，再往上某處就開始吃力了。免費，沒有帳號，不用登入，也沒有試用期。本站靠廣告養活，廣告那邊拿不到關於你文件的任何東西。

### 斷網能用嗎？

能。把頁面載入一次，然後斷網，它照樣能用。這也是證明什麼都沒被上傳的最簡單辦法。要是有個工具把你的文件送出去讓別人塗，拔掉網線的那一刻它就停了。

## 這條隱私承諾怎麼核實

- **黑塊不是塗黑，而這裡也不會在任何東西上面畫一個。** 幾乎每一個說自己能塗黑一頁的程式裡，不管是 PDF 閱讀器、文書處理軟體還是設計工具，那個黑塊都是存在文字旁邊的一個物件，而不是存進文字裡。文字還在那裡，在同一個檔案的同一個位置，把那塊區域選中按複製就拿回來了。就是這個失誤讓法院文書、情報報告，以及 2025 年 12 月美國司法部大批檔案裡被塗黑的姓名公之於眾，而那些姓名在幾小時內就被讀了出來。這個工具是把字從繪製頁面的指令裡刪掉。這裡沒有哪個黑塊底下還壓著什麼，因為底下什麼都沒有。
- **做好的檔案在交給你之前，會在這裡重新開啟、重新搜一遍。** 在那之前，上面這些話都只是這個工具在給自己判卷。所以那些馬上就要變成你下載內容的位元組，會被當作陌生人寄來的一樣重新交回同一個讀取模組：每一頁重新讀一遍，每一個書籤、註解、表單域和文件屬性都收集起來，然後去搜你拿掉的那些詞。數量會寫在結果裡。要是有東西活了下來，這一次就報告為失敗，不給下載。
- **詞不會離開這個分頁，搜尋也不會。** Content-Security-Policy 裡寫著這一頁能聯絡的每一個地址，沒有一個屬於本站。這個工具沒往那份名單裡加任何東西，因為它沒有自己的聯網功能，連可選的都沒有。你在搜尋框裡打的字，是拿來跟這個分頁記憶體裡的文字比對的一串字元，這兩樣都沒有地方可去。
- **塗黑是最經不起上傳的那件事。** 人們拿去塗黑的東西，正是它不該被上傳的理由。證人證言、診斷書、要交給房東的銀行流水、帶著一個客戶名字卻要發給另一個客戶的合同。把這些交給陌生人的伺服器去掉私密部分，意味著私密部分先完完整整地到了那邊，而留在他們那裡的也正是那一版。這一頁沒有另一半。
- **留下的部分原樣傳過去。** 一頁上會變的位元組，只有那些包含了被刪字元的文字繪製指令。其他每一條指令，以及這一頁用到的每一個字型、圖片和線條，都按進來時的樣子精確複製。不重繪，不重新編碼，也不重排。刪掉部分的寬度會量出來，再作為一條字距指令放回去，於是這一行的其餘部分還停在文件原本安排的位置上。
- **它拿不掉照片裡的詞，而且會說清哪些頁面是這種。** 掃描出來的一頁是一張圖。上面的詞是畫素，不是文字，這裡沒有任何東西能碰到它們。要是這份掃描檔帶著掃描器 OCR 做的那層看不見的可搜尋文字，這個工具會把那一層拿掉，而搜尋和複製原本找到的正是它。同時它會在頁面上明說：圖裡的詞還看得見。要蓋住那張圖是另一件事，負責覆蓋畫素的是[圖片塗黑](https://abox.tools/zh-TW/redact-image/)。
- **文件不再交代自己從哪裡來。** 屬性和 XMP 包每次都會被清掉：沒有 producer 那一行，沒有建立日期，沒有作者，沒有標題，也沒有排版軟體留下的那些私有塊。一份從頁面上刪掉了姓名、屬性裡卻還寫著 `張某_和解稿3.docx` 的檔案，不是一份塗黑過的檔案，而這件事不該交給一個勾選框去管。
- **加密的檔案會被退回，而不是開啟。** 帶密碼的 PDF 會被拒收，包括掃描器用空密碼產生、技術上打得開的那一類。去掉一份文件的保護，跟從裡面拿走幾個詞是兩件事，而悄悄替你做掉，對一個替你運作的工具來說是件出人意料的事。
- **谷歌載入了什麼，又拿不到什麼。** 廣告和統計指令碼來自谷歌。這兩個都拿不到關於你文件的任何東西：檔案拿不到，頁面拿不到，姓名、大小、頁數，以及你搜過的詞，都拿不到。讀取、修改、寫出 PDF 的每一行都由本站自己提供，也都寫在儲存庫裡。
- **捐贈按鈕載入了什麼，又拿不到什麼。** 頁面頂部那個「Buy me a coffee」按鈕由 cdnjs.buymeacoffee.com 的指令碼畫出來，字型取自 Google Fonts。它就是個連結而已，不會報告訪問，也拿不到關於你或者你文件的任何東西。你不點它就什麼都不會發生，點下去到的是別人的網站。
- **斷網也能用。** 把網路斷掉，這一頁上的一切照樣運轉。這是最簡單的證明。要是有個工具把你的文件送出去讓別人塗，它就停了。

**你可以自己核對。**上面這些不用你信。這個頁面是儲存庫裡的模板和配置產生出來的，構建指令碼你能讀，也能自己跑一遍，跑出來的結果就提交在 `dist` 分支上。拿實際發給你的內容，跟你自己從原始碼構建出來的結果對一遍就知道了： https://github.com/A-Box-of-Tools/website

最值得先讀的幾個檔案：`config/site.toml` 裡是 Content-Security-Policy，一頁上的每個詞是怎麼找到、怎麼定位的，看 `src/shared/pdf-text.js`；刪除本身在 `src/edit.js`，從頁面指令裡切掉了什麼、為了讓這一行的其餘部分不移位又放回了什麼，都在那裡。這幾個都夠不著網路，旁邊負責讀和寫的部分也一樣。
