文章
為什麼有些 PDF 無法複製文字
在某一份 PDF 裡試著選取一行文字,字會正常反白,可以複製。在另一份 PDF 裡做同樣的動作,卻什麼都不會發生,或游標會像抓一張照片一樣,把整頁都選起來,因為它本來就是一張照片。兩份看起來一模一樣的檔案,底層的建構方式可能完全不同。以下說明如何分辨你手上的是哪一種,以及該怎麼處理那種抗拒複製的檔案。
兩種完全不同的 PDF 頁面
PDF 可以用兩種非常不同的方式儲存一頁。在文字型 PDF 裡,每個字母都是一個帶有 Unicode 值、字型與位置的字元物件,就像網頁儲存文字的方式一樣:檢視器可以選取它、搜尋它,螢幕報讀器也能把它讀出來。在影像型 PDF 裡,整頁是一張扁平的圖片,通常來自掃描器、傳真機,或把一張文件照片「列印成 PDF」的步驟。文字在你眼裡看起來一樣,但對這個檔案格式來說,底下並沒有字元,只有像素。

快速分辨你拿到的是哪一種
按下 Ctrl+F 或 Cmd+F,搜尋一個你在頁面上明顯看得到的字。如果搜尋找到並反白了它,這一頁就有真正的文字圖層。如果整份文件裡什麼都找不到,不管這一頁看起來多清晰、多像打字文件,它都是一張圖片。用滑鼠拖曳選取一行文字,得到的答案也一樣:是反白選取,還是單純的矩形選取範圍。
用 OCR 重建文字
光學字元辨識(OCR)會讀取影像型頁面的像素,把形狀比對到某個語言已訓練好的字母模型,再依辨識出的字元原本出現的位置,重建出一層文字。像 ocr 這樣的工具,會完全在瀏覽器中完成這件事:不會上傳任何內容,輸出的是一份可以搜尋、複製或編輯的純文字檔。準確度取決於來源:乾淨、端正、高解析度、語言支援良好的掃描檔,辨識結果可靠;歪斜、模糊、對比度低或手寫的頁面,會產生更多錯誤,有時是認錯一個字元,有時是整個字讀錯。

檔案已經有文字,但擷取結果亂七八糟
如果你的 PDF 確實有真正的文字圖層,但用 pdf-to-text 這類工具擷取出來的文字順序很奇怪、欄位被混在一起,或間距被壓縮,那是另一個完全無關的問題:文字物件確實存在,但它們在頁面上的閱讀順序,沒有依照一般程式自然預期的方式儲存。這是擷取後需要整理的版面小問題,不代表文字不見了,也不需要用 OCR 來解決。
本文涉及的工具
常見問題
我的 PDF 看起來像一份正常的打字文件,但還是無法選取任何文字,為什麼?
最可能的原因是,這是一份掃描或拍照後存成 PDF 的頁面,或是特意被壓平成圖片的文件。從外觀上看,它可能和文字型 PDF 沒有差別;差異只有在你試著搜尋或選取時才會顯現。用 OCR 處理一次,就能從像素重建出一層真正可選取的文字。
OCR 在每種語言上的表現都一樣好嗎?
不一樣。準確度取決於是否有針對該語言與文字系統訓練好的模型,也取決於掃描的品質。在乾淨、端正的掃描檔上,支援良好的語言辨識結果可靠;手寫、低解析度影像,或訓練資料較少的語言,會產生較多錯誤。OCR 的輸出永遠是盡力而為的謄寫結果,值得在依賴它之前快速校對一遍。