PDF的文字錯誤怎麼辦?修正PDF上錯誤的OCR文字 / How to perform OCR PDF with Renderable Text Error
雖然PDF檔案是標準格式,但是隨著PDF檔案產生的方法不同、文字辨識OCR工具帶來的字型與編碼問題,很多早期的PDF檔案雖然可以選取、複製文件上的文字,但複製出來的文字卻會是亂碼。我參考了Grant Robertson的建議,將PDF輸出到XPS印表機,再將XPS輸出成PDF,這樣就可以在PDF上進行OCR辨識,最後就能得到正確辨識的檔案了。以下我就來整理這一套做法,供大家參考參考。
OCR文字錯誤的檔案 / PDF with Renderable Text Error
這是「Does test delay eliminate collaborative inhibition?」論文中的一頁。這個PDF檔案雖然有經過OCR,可以直接選取、複製。
但問題是,它複製出來的文字實際上都是亂碼。
就算Acrobat Pro DC有提供OCR工具,但因為該文件本身已經有經過OCR處理,包含了可渲染的文字(renderable text),因此不能再次進行OCR。
Acrobat官網的建議是把PDF輸出成tiff圖片,再將圖片建立成PDF,然後再重新OCR。但這種做法會造成文字解析度變差,原本清晰的向量文字變成了點陣文字,看起來就不太舒服。最後我找到的是Grant Robertson使用XPS印表機做法,讓我們來看看怎麼做吧。
XPS印表機 / XPS Printer
XPS (XML Paper Specification)是微軟開發的文件檔案格式,類似於Acrobat的PDF,不過不能像PDF這樣修改檔案的內容。製作XPS檔案的方式是利用Microsoft XPS Document Writer這個虛擬印表機來列印檔案,就可以將任何可列印的檔案製作成XPS格式的檔案。
在Windows Vista之後的作業系統都有預設安裝這個印表機,不過如果是Vista之前,或是不小心砍掉了這個印表機的話,可以參考[Windows] 安裝Microsoft XPS Document Writer 印表機這篇來重新安裝。
待會我們的操作就會用到這個XPS印表機,讓我們開始吧!
Step 1. 將PDF列印成XPS檔案 / Print a PDF into XPS format file
雖然用任何可以開啟PDF的檔案來進行列印即可,不過這邊我使用的是Acrobat Pro DC的列印對話視窗。在這個對話視窗中,我們主要進行兩個設定:
- Printer: Microsoft XPS Document Writer:這樣就可以輸出XPS檔案。
- [v] Choose paper source by PDF page size:這樣輸出的頁面尺寸就會配合原本的PDF檔案大小。
按下Print之後,XPS印表機就會要你選擇路徑跟檔案名稱來保存XPS檔案。
這樣我們就產生了副檔名為.xps的XPS檔案了。
Step 2. 用Acrobat Pro DC開啟XPS檔案
雖然XPS預設是用XPS檢視器開啟,但這邊我們選擇使用Acrobat Pro DC開啟它,這樣可以節省轉換為PDF的步驟。
在開啟XPS檔案的時候,Acrobat Pro DC就已經默默地將它轉換成PDF檔案了。從XPS檔案轉換過來的PDF檔案已經失去了可渲染的文字,因此我們不能直接選取,還需要進行文字辨識OCR才行。讓我們繼續進行下一步。
Step 3. 文字辨識 / OCR
接下來就可以用我們熟悉的OCR工具來為PDF進行文字辨識。Acrobat Pro DC的文字辨識放在「Tools > Enhance Scans」中,選擇「Recognize Text」,然後設定想要辨識的語言,再按下「Recognize Text」,這次PDF就能夠正常進行OCR處理。
經過OCR之後的PDF檔案就能選取與複製。
複製之後的文字也相當正常囉。
把經過OCR處理的PDF檔案儲存起來,整個流程就完成了。
檔案大小的問題 / A issue about the file size
乍看之下這樣的做法可以解決OCR文字錯誤的問題,但背後卻隱藏著另一個問題:檔案大小急劇增加。讓我們來看看每階段操作產生的檔案大小變化:
- 1. Renderable Text Error.pdf (31KB):這是原始包含OCR錯誤文字的檔案,一頁只有31KB。
- 2. Print PDF to XPS.xps (74KB):轉換成XPS之後,檔案大小增加超過兩倍。
- 3. Print XPS to PDF.pdf (362KB):從XPS轉換成PDF,檔案大小增加了5倍。
- 4. OCR Text.pdf (480KB):再進行OCR的處理,檔案大小又增加了1.3倍。
跟原始檔案相比,轉換到最後的檔案足足增大了15倍之多!
大部分論文的頁數不多,就算經過這樣處理,檔案大小也頂多不會超過10MB。但若是很多頁的厚重報告,轉換之後的檔案尺寸可能會相當驚人,大家在用這方法之間可能要三思。
Grant Robertson也在文中討論了這個問題,他建議的是使用ClearScan,也就是Output的「Searchable Image」。這樣可以讓檔案變得非常小,並且保留可選取文字的功能。
但是這樣會讓文字從向量轉換成黑白的點陣圖,使得文字看起來不再清晰。如果不是很介意檔案大小的話,我寧願讓檔案大一點、並且維持清晰的文字,看起來比較舒服。
小結 / In closing
其實PDF中OCR文字辨識錯誤的問題困擾了我很久,今天總算是花點時間來找找方案,最後才發現原來還有XPS這招可以用,真是感謝Grant Robertson的說明。希望這個方法對你也有幫助!
這篇修正PDF中OCR文字錯誤的教學就到這邊囉。你也有遇到這種PDF檔案嗎?你都是怎麼處理的呢?如果你有什麼建議的話,歡迎在下面留言提出指教。如果你覺得這篇介紹有幫到你的話,請幫我在AddThis分享工具按讚、將這篇分享到Facebook等社群媒體吧!感謝你的耐心閱讀,讓我們下一篇見。
今晚用這招用一用就遇到例外狀況了。
回覆刪除有時候PDF列印成XPS檔案的時候,不知為何它還是保留了可渲染的文字
這時候再將它列印成XPS檔案,然後再用Acrobat開啟,這時候就會移除可渲染文字了
總之多轉存XPS幾次,這樣子就可以順利移除掉可渲染文字,重新OCR吧。
今天又用了一次,感激感覺
回覆刪除