> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 中国語、日本語、韓国語の認識

> ABBYY FineReader Engine で中国語、日本語、韓国語（CJK）のテキストを認識してエクスポートする方法を説明します。CJK の Optical Character Recognition (OCR) に必要な事前定義言語、フォント、ライセンスモジュールについても扱います。

中国語、日本語、韓国語は、しばしば「CJK」という略称で総称されます。これらの言語には、漢字を使用することや、横書きだけでなく縦書きもあることなど、いくつかの共通する特徴があります。

このセクションでは、ABBYY FineReader Engine 12 で CJK 言語のテキストを認識し、エクスポートする際の特有の注意点について説明します。

まず、CJK 言語を認識するには、[中国語](/ja/fine-reader/engine/licensing/modules#chinese)、[日本語](/ja/fine-reader/engine/licensing/modules#japanese)、および [韓国語](/ja/fine-reader/engine/licensing/modules#korean) の各言語モジュールに対応した ABBYY FineReader Engine のライセンスが必要です。ライセンスおよびモジュールの詳細については、[Licensing](/ja/fine-reader/engine/licensing) セクションを参照してください。

<div id="recognition-languages">
  ## 認識言語
</div>

ABBYY FineReader Engine は、CJK テキスト向けに次の定義済み認識言語をサポートしています。

<Note>後方互換性を確保するために ChinesePRC と ChineseTaiwan も引き続き使用できますが、新規実装では ChineseSimplified と ChineseTraditional を使用する必要があります。</Note>

* "ChineseSimplified"
* "ChineseTraditional"
* "Japanese"
* "JapaneseModern"
* "Korean"
* "KoreanHangul"

これらの定義済み言語のいずれかを選択するには、[RecognizerParams](/ja/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/recognizerparams) オブジェクトの [SetPredefinedTextLanguage](/ja/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/recognizerparams/setpredefinedtextlanguage-method) メソッドを使用できます。

<Warning>
  日本語 (Modern) 認識言語は、日本語と英語、およびギリシャ語の 4 文字で構成される複合言語です。この言語は、漢字、かな (カタカナまたはひらがな) 、一部のラテン文字やギリシャ文字を含む可能性がある現代日本語のテキスト (レポートや研究論文など) を認識するためのものです。主に日本語で書かれた文書で最適な認識結果を得るには、日本語 (Modern) 認識言語を英語との組み合わせではなく、単独の言語として使用することを強く推奨します。
</Warning>

ABBYY FineReader Engine は、これらの言語を複数組み合わせた認識言語の組み合わせや、CJK 言語とその他の言語の組み合わせをサポートしています。

<div id="fonts">
  ## フォント
</div>

アジア系文字の文字化けを防ぐには、文書の合成時に、必要な文字セットを含むフォント (例: Arial Unicode MS、SimSun) を指定する必要があります。フォントは、[ISynthesisParamsForDocument::FontSet](/ja/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/synthesisparamsfordocument#fontset) プロパティを使用して設定できます。[FontSet](/ja/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/fontset) オブジェクトの SystemFontSet プロパティは、既定で、文書の認識言語に対応するシステムフォントが選択されるように設定されています。

<div id="export">
  ## エクスポート
</div>

CJK言語をPDF/Aに「画像の下にテキスト」モード (`IPDFExportParams::TextExportMode = PEM\_ImageOnText`) でエクスポートすると、文書の見た目をそのまま維持できます。

<div id="the-procedure-of-recognition-and-export">
  ## 認識とエクスポートの手順
</div>

CJK 言語で記述されたドキュメントを処理するには、次の手順を実行します。

1. [Engine](/ja/fine-reader/engine/api-reference/engine-object-iengine-interface) オブジェクトの [CreateDocumentProcessingParams](/ja/fine-reader/engine/api-reference/engine-object-iengine-interface/creation-methods/createlessobjectgreater-methods) メソッドを使用して、[DocumentProcessingParams](/ja/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/documentprocessingparams) オブジェクトを作成します。
2. 認識言語を指定します。[PageProcessingParams](/ja/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/pageprocessingparams) サブオブジェクトの [RecognizerParams](/ja/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/recognizerparams) サブオブジェクトの [SetPredefinedTextLanguage](/ja/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/recognizerparams/setpredefinedtextlanguage-method) メソッドを使用します。
3. CJK 言語に適したフォントセットを選択します。[SynthesisParamsForDocument](/ja/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/synthesisparamsfordocument) サブオブジェクトの [ISynthesisParamsForDocument::FontSet](/ja/fine-reader/engine/api-reference/parameter-objects/preprocessing-analysis-recognition-and-synthesis-parameters/synthesisparamsfordocument#fontset) プロパティを使用します。
4. 設定済みの DocumentProcessingParams オブジェクトを、[FRDocument](/ja/fine-reader/engine/api-reference/document-related-objects/frdocument) オブジェクトの [Process](/ja/fine-reader/engine/api-reference/document-related-objects/frdocument/process-method) メソッドに渡します。Engine オブジェクトのメソッドを使用する場合は、エクスポートの前に、設定済みの SynthesisParamsForDocument オブジェクトをパラメーターとして指定して、Engine オブジェクトの synthesis メソッドのいずれかを呼び出す必要があります。
5. FRDocument オブジェクトの [Export](/ja/fine-reader/engine/api-reference/document-related-objects/frdocument/export-method) メソッドを使用して、認識されたテキストをエクスポートします。PDF または PDF/A 形式にエクスポートする場合は、必要なエクスポートモードを指定します。

<Note>
  CJK 言語で記述されたテキストに対しては、[Word](/ja/fine-reader/engine/api-reference/text-related-objects/word) オブジェクトとそのプロパティ、または [CharParams](/ja/fine-reader/engine/api-reference/text-related-objects/charparams) オブジェクトの [IsWordFirst](/ja/fine-reader/engine/api-reference/text-related-objects/charparams#iswordfirst) 、[IsWordLeftmost](/ja/fine-reader/engine/api-reference/text-related-objects/charparams#iswordleftmost) プロパティを使用しないでください。処理では、内部処理のためにのみテキスト行を "words" に分割しており、これらの記号グループは実際の単語とは一致しません。
</Note>

<Accordion title="C++ コード">
  ```cpp theme={null}
  // Engine はすでに作成されており
  // ドキュメントも読み込み済みであるとします
  IEngine* Engine;
  IFRDocument* frDocument;
  HRESULT res; // メソッド呼び出しが成功したかどうかを確認するために使用する変数
  ...
  // DocumentProcessingParams オブジェクトを作成
  IDocumentProcessingParams* params = 0;
  IPageProcessingParams* pageParams = 0;
  IRecognizerParams* recParams = 0;
  res = Engine->CreateDocumentProcessingParams( ¶ms );
  res = params->get_PageProcessingParams( &pageParams );
  res = pageParams->get_RecognizerParams( &recParams );
   
  // 認識言語を指定
  res = recParams->SetPredefinedTextLanguage( L"Japanese" );
   
  ISynthesisParamsForDocument* synthesisParams = 0;
  IFontSet* set = 0;
  ISystemFontSet* systemSet = 0;
  res = params->get_SynthesisParamsForDocument( &synthesisParams );
  res = synthesisParams->get_FontSet( &set );
  res = set->get_SystemFontSet( &systemSet );
   
  // フォントセットを選択
  res = systemSet->put_FontNamesFilter( FNF_Japanese );
  // ドキュメントを認識してエクスポート
  frDocument->Process( params );
  frDocument->Export( L"/opt/Demo.rtf", FEF_RTF, 0 );
  ...
  ```
</Accordion>

<Accordion title="C++ (COM) コード">
  ```cpp theme={null}
  FREngine::IEnginePtr Engine;
  FREngine::IFRDocumentPtr frDocument;
  ...
  // DocumentProcessingParams オブジェクトを作成します
  FREngine::IDocumentProcessingParamsPtr pDocumentProcessingParams = Engine->CreateDocumentProcessingParams();
  // 認識言語を指定します
  pDocumentProcessingParams->PageProcessingParams->RecognizerParams->SetPredefinedTextLanguage( "Japanese" );
  // フォントセットを選択します
  pDocumentProcessingParams->SynthesisParamsForDocument->FontSet->SystemFontSet->FontNamesFilter = FREngine::FNF_Japanese;
  // ドキュメントを認識してエクスポートします
  frDocument->Process( pDocumentProcessingParams );
  frDocument->Export( L"D:\\Demo.rtf", FREngine::FEF_RTF, 0 );
  ...
  ```
</Accordion>

<Accordion title="C# コード">
  ```csharp theme={null}
  FREngine.IEngine engine;
  FREngine.IFRDocument frdoc;
  ...
  // DocumentProcessingParams オブジェクトを作成します
  FREngine.IDocumentProcessingParams dpp = engine.CreateDocumentProcessingParams();
  // 認識言語を指定します
  dpp.PageProcessingParams.RecognizerParams.SetPredefinedTextLanguage( "Japanese" );
  // フォントセットを選択します
  dpp.SynthesisParamsForDocument.FontSet.SystemFontSet.FontNamesFilter = (int)FREngine.FontNamesFiltersEnum.FNF_Japanese;
  // ドキュメントを認識してエクスポートします
  frdoc.Process( dpp );
  frdoc.Export( "D:\\Demo.rtf", FREngine.FileExportFormatEnum.FEF_RTF, null );
  ...
  ```
</Accordion>

<div id="see-also">
  ## 関連項目
</div>

[言語の使用](/ja/fine-reader/engine/guided-tour/advanced-techniques/working-with-languages)
