灰階 PDF 轉換器輸出的是一份點陣化的 PDF,也就是說,輸出結果不會保留可選取的文字、可點擊的連結、表單欄位、註解,以及向量路徑。每一頁都會先由瀏覽器的 PDF 檢視器以固定的 1.5x 比例算繪,接著每個可見像素都會用標準亮度公式 0.2126R + 0.7152G + 0.0722B 轉換成灰階,最後這個灰階版本會以 PNG 圖片的形式,重新寫入一份全新的 PDF 中。由於原本的文字層、連結註解與向量指令,都被替換成一張平面圖片,因此您無法在產生出來的檔案中反白、複製、搜尋,或點擊任何內容。頁面尺寸維持不變,但文件會變成一張視覺快照,而不再是可互動的文件。這正是這個工具的核心取捨,也直接回答了大多數人在轉換之前會問的問題:輸出結果在「可互動」的意義上,已經不再是一份真正的 PDF,而是它的一份可列印灰階副本。

灰階轉換器實際上對您的頁面做了什麼
灰階 PDF 轉換器會讀取一份本機端的 PDF,把每一頁算繪在一個隱藏的 HTML canvas 上,讀回每一個像素,套用一個算術灰階轉換,把結果編碼成 PNG,再用 pdf-lib 把這些 PNG 組合成一份新的 PDF。原本的文字層、連結註解、表單欄位、向量路徑、圖層、中繼資料、無障礙標籤與壓縮方式,都不會被保留下來,因為這個工具從未動過這些東西;它只處理瀏覽器繪製出來的像素。
這種做法讓這個工具擁有兩個實用的特性。第一,它不需要解析每一種 PDF 色彩運算子,這代表它能處理範圍廣泛、經過色彩管理或內容混合的文件,而不必依賴特定的 PDF 功能集。第二,這套運算是明確且可測試的,因此同樣的輸入像素,永遠會得到同樣的灰階像素。這個工具刻意避開 CSS 的 canvas filter 屬性,因為這個屬性在 Safari 中並不是一個可靠的預設行為,而一個在不同瀏覽器之間悄悄改變外觀的工具,會違背快速視覺轉換的初衷。
這套運算本身,就是 Rec. 709 的亮度係數組合:紅色用 0.2126、綠色用 0.7152、藍色用 0.0722。以一個完全飽和的紅色像素、數值為 (255, 0, 0) 為例,計算式是 0.2126 × 255 + 0.7152 × 0 + 0.0722 × 0 = 54.213,四捨五入後為 54。這個單一的灰階數值,接著會被寫入輸出像素的紅、綠、藍三個通道中。同一個公式,對純綠色會得到 182,對純藍色則會得到 18,這也是為什麼即使兩者一開始都是滿亮度,轉換之後,一片綠葉看起來會比藍天更亮。
三個步驟把 PDF 轉成灰階
- 選擇一份最多 25 MB 的本機端 PDF。檔案是從您的裝置上讀取的,因此不會傳送到任何伺服器。受密碼保護、已簽章,或格式不正確的 PDF,可能會轉換失敗,因為這個工具不會繞過密碼或簽章。
- 選擇「轉換為灰階」並等待。每一頁都會先依照尺寸與像素上限做預先檢查,接著在 canvas 上算繪、逐像素轉換、編碼成 PNG,最後拼接成一份新的 PDF。運算在本機端進行時,瀏覽器中會顯示進度。
- 檢查點陣化的 PDF 並下載。在分享或列印之前,先開啟結果,確認視覺上的單色副本看起來正確。開始另一次轉換,會取消前一項工作,並釋放其 canvas、工作執行緒與暫存下載網址。
為什麼可選取的文字與連結無法保留
一份一般的 PDF,是各種指令與內嵌資源的混合體。文字通常存放在一個獨立的文字層中,包含字型參照與字元位置。連結則以帶有目的地參照的註解物件形式存在。表單欄位、簽章、無障礙標籤與向量繪圖,在檔案內部都是各自獨立的物件。灰階 PDF 轉換器不會讀取或改寫這些物件中的任何一個;它只會查看瀏覽器繪製該頁時所產生的圖片。
在寫入輸出的 PDF 時,每一頁都恰好只包含一張圖片:那張灰階的 PNG。這張圖片沒有文字層、沒有註解陣列、沒有表單元件,也沒有向量資料。反白、複製、搜尋與點擊文件內容,全部都仰賴這些已經不存在的物件,因此都會失效。頁面尺寸、頁數與視覺外觀會被保留下來,但可互動性與結構性質則不會。
輸出結果保留了什麼、又捨棄了什麼
| 屬性 | 輸出中是否保留 |
|---|---|
| 以點為單位的頁面尺寸 | 是,新頁面與原始頁面大小相同 |
| 頁數 | 是,新的 PDF 頁數相同 |
| 視覺外觀 | 是,以固定的 1.5x 算繪比例呈現,之後再放回原始尺寸的頁面上 |
| 可選取的文字 | 否,文字層會被替換成 PNG |
| 可點擊的連結 | 否,連結註解會被捨棄 |
| 表單欄位與元件 | 否,可互動的表單物件會被捨棄 |
| 註解與意見 | 否,註解陣列不會被保留 |
| 向量路徑與繪圖 | 否,向量會被扁平化成點陣圖片 |
| 圖層與選用內容 | 否,分層的內容會被合併成一張圖片 |
| 原始圖片壓縮方式 | 否,原本的 JPG 或 JPEG 2000 影像串流,會被替換成 PNG |
| 無障礙標籤 | 否,邏輯結構樹不會被重建 |
| 中繼資料(標題、作者、XMP) | 否,新的 PDF 會以預設中繼資料開始 |
轉換器所強制執行的檔案、頁面與像素限制
| 限制項目 | 數值 |
|---|---|
| 來源檔案大小 | 最多 25 MB |
| 每項工作的頁數 | 最多 40 頁 |
| 每邊的算繪像素數 | 單一算繪頁面的任一邊,最多 12,000 像素 |
| 每頁的百萬像素數 | 每頁最多 40 百萬像素 |
| 整份文件的總百萬像素數 | 所有頁面加總最多 100 百萬像素 |
| 密碼處理方式 | 不會繞過密碼或簽章 |
| 上傳行為 | 無,所有運算都在瀏覽器分頁中執行 |
每一頁在配置 canvas 之前,都會先以 1.5x 的算繪比例做預先檢查,這正是避免單一分頁嘗試持有無上限影像緩衝區的關鍵。如果您的文件超出這些限制中的任何一項,轉換就會在耗盡瀏覽器記憶體之前先行停止。
灰階 PDF 與可搜尋 PDF:並列比較
| 目標 | 較適合的選擇 |
|---|---|
| 用於列印的快速視覺單色副本 | 灰階 PDF 轉換器 |
| 只接受灰階檔案的上傳表單 | 灰階 PDF 轉換器 |
| 以黑白方式預覽彩色文件的列印效果 | 灰階 PDF 轉換器 |
| 可搜尋、可複製、具無障礙性的 PDF 輸出 | 一款會保留文字層的 PDF 編輯器 |
| 符合 PDF/A 規範的封存檔 | 一款具備封存設定檔的專業 PDF 工具 |
| 已簽章或具法律效力的認證文件 | 一款能驗證並保留簽章的工具 |
| 可控制的壓縮或列印色彩管理 | 一款專業的 PDF 編輯器 |
什麼時候該選擇灰階
當您需要的正是一份扁平化的視覺副本時,這個工具就很適合。常見的情況包括:為只能使用黑色碳粉的印表機,快速產生一份單色版本;一份您只打算在螢幕上閱讀的參考文件;一個拒收彩色檔案的上傳需求;以及在把工作送到印刷廠之前,用來抓出版面問題的列印預覽。由於轉換是在瀏覽器中進行,因此在您無法把敏感文件上傳到外部服務、卻仍需要一份黑白副本傳送出去的情況下,這個工具也很有用。
當輸出結果必須維持可互動性或合規性時,這個工具就不適合。如果您需要可搜尋的文字、無障礙標籤、可填寫的表單、簽章驗證、向量保真度,或可控制的壓縮方式,那麼一款保留原始文字層的 PDF 編輯器才是正確的選擇。對這類工作來說,點陣化的灰階轉換器,會移除掉您原本正想保留的那些功能。
分享輸出結果之前,先檢查一遍
用您平常使用的閱讀器開啟產生出來的 PDF,點擊原本有連結的位置,試著選取一句話,並檢查檔案大小。如果連結消失了、文字無法反白,或檔案大小是原檔的好幾倍,這些都是點陣化轉換的預期結果,而不是程式錯誤的跡象。請把原始檔案與灰階副本一起保留下來,這樣一旦您再次需要可搜尋的文字或可用的連結,就能回頭使用可互動的版本。
MDN 關於 CanvasRenderingContext2D.getImageData 的參考文件說明了這個工具用來把每個像素從 canvas 讀回來所依賴的底層瀏覽器 API,而Mozilla PDF.js API則記載了在灰階運算執行之前,用來繪製每一個來源頁面的算繪器。
如果您正在權衡選擇,使用 PDF 轉灰階工具時應避免的錯誤這篇文章有詳細說明。
如果您正在權衡選擇,用文字方塊與核取方塊建立簡單的 AcroForm PDF這篇文章有詳細說明。