非ラテン文字スクリプトの検索可能な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フォント。 この例ではAnekGujaratiを使用しています。これは、Google Fontsから自由に入手可能です。
  • そのフォントへの完全なファイルパス。

ご注意IronOCRバージョン2026.3.3以降が必要です。

解決策

1. スクリプトをカバーするフォントを配置する

対象スクリプトのグリフを含むフォントを見つけ、マシンに配置し、その完全なパスをメモします。 グジャラート語の例では:

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

AnekGujarati変数フォントファイル名にはカンマが含まれているため、正確にコピーしてください。 パスは正確なフォントファイルを指している必要があります。

2. SaveAsSearchablePdfにフォントを渡す

検索可能なPDFを保存するときに、スクリプト対応のフォントへのパスをCustomFontFile(第3引数)として提供します。 第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

文字化けした抽出を修正する引数はフォントファイル(第3パラメーター)です:それはあなたがOCRしたスクリプトのグリフを含む必要があります。 第4パラメータは埋め込みフォントのみを命名しており、スクリプトマッピングには影響しません。 別の文書の場合、第3パラメータをそのスクリプトをサポートするフォントに向けます。

3. テキストの抽出を確認する

生成されたPDFを開き、認識されたテキストをコピーして、正しく抽出されることを確認します。 それでも文字化けして表示される場合、提供されたフォントがスクリプトのグリフをほぼ確実に持っていません; そのフォントが実際にカバーしているかを再確認してください。

注釈

  • グジャラート語に特有ではない: PDFフォントがカバーしていない場合、ヒンディー語、マラーティ語のデーヴァナーガリー、アラビア語、タイ語、中国語、日本語、韓国語のテキストを含む、非ラテン文字や複雑なスクリプトではコピーされたテキストが文字化けを引き起こす可能性があります。
  • スクリプトごとに1つのフォント: 認識したスクリプトを含むフォントを提供してください。 GoogleのNotoファミリーは、Noto Sans Gujarati、Noto Sans Devanagari、Noto Sans Arabicなど、スクリプトごとのフォントが用意されています。
Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Nuget ダウンロード 6,175,195 | バージョン: 2026.7 リリースされたばかり
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか? PM > Install-Package IronOcr
サンプルを実行 あなたの画像が検索可能なテキストになるのをご覧ください。