可搜尋PDF中的亂碼;非拉丁字母表的問題

This article was translated from English: Does it need improvement?
Translated
View the article in English

使用IronOCR進行文件OCR處理,將其保存為可搜尋的PDF,螢幕上顯示辨識的文字可能正確,但當您複製或提取時會變成亂碼。 這種情況發生在PDF的字型對您辨識的文字沒有字元時,這在非拉丁字母和複雜的文字中很常見。解決辦法是使用支援您文字的字型保存PDF; 如下範例使用的是古吉拉特文。

辨識後的文字沒有匹配的字元可以映射,所以即使OCR正確地讀取了該頁面,複製出來的文字仍然是亂碼。 僅用拉丁字母的字型無法解決這個問題;您提供的字型必須覆蓋到您實際識別的文字。

先決條件

  • 使用IronOCR以及您的文字所需的語言包。 此範例使用OcrLanguage.GujaratiBest
  • 支援您的目標文字的TrueType字型。 這個例子使用的是Google Fonts上免費提供的AnekGujarati
  • 字型的完整檔案路徑。

請注意需要IronOCR 2026.3.3或更新版本。

解決方案

1. 放置覆蓋您文字的字型

尋找包含您目標文字的字型,放在機器上,並記下其完整路徑。 對於古吉拉特文的例子:

C:\Path\To\AnekGujarati-VariableFont_wdth,wght.ttf

AnekGujarati可變字型的檔名包含逗號,所以請準確地複製它。 路徑必須指向精確的字型檔案。

2. 傳遞字型給SaveAsSearchablePdf

當保存可搜尋PDF時,提供可以支援您文字的字型路徑作為CustomFontFile(第三個)參數。 第4個參數是一個可選的CustomFontName標籤; 如果您省略它,IronOCR將使用字型檔案本身的名稱:

ocrResult.SaveAsSearchablePdf(
    strOutputFile,
    false,
    @"C:\Path\To\AnekGujarati-VariableFont_wdth,wght.ttf",
    "AnekGujarati");
ocrResult.SaveAsSearchablePdf(
    strOutputFile,
    false,
    @"C:\Path\To\AnekGujarati-VariableFont_wdth,wght.ttf",
    "AnekGujarati");
ocrResult.SaveAsSearchablePdf( _
    strOutputFile, _
    False, _
    "C:\Path\To\AnekGujarati-VariableFont_wdth,wght.ttf", _
    "AnekGujarati")
$vbLabelText   $csharpLabel

解決亂碼抽取的參數是字型檔案(第三個參數):必須包含您進行OCR讀取的文字字元。 第4個參數僅是嵌入字型的名稱,並不影響字型映射。 對於不同的文件,指向第三個參數到支援該文字的字型。

3. 確認文字提取

開啟生成的PDF並複製辨識的文字,以確認其現在可以正確提取。 如果它仍然顯示為亂碼,則您提供的字型幾乎可以確定缺少該文字的字元; 重新檢查字型是否真正覆蓋到該文字。

筆記

  • 不僅限於古吉拉特文: 任何非拉丁或複雜的文字在PDF字型沒有覆蓋時都可能顯示亂碼,包括梵文(印地語、馬拉地語)、阿拉伯語、泰語, 以及中、日、韓文。
  • 每個文字一個字型:提供包含您識別文字的字型。 Google的Noto字型家族是一個廣泛的選擇,包括如Noto Sans Gujarati、Noto Sans Devanagari和Noto Sans Arabic等按文字分類的字型。
Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

準備開始了嗎?
Nuget 下載 6,175,195 | 版本: 2026.7 剛剛發布
Still Scrolling Icon

還在滾動?

想要快速證明? PM > Install-Package IronOcr
執行範例 觀看您的圖像轉變為可搜尋文字。