메인 콘텐츠로 건너뛰기
중국어, 일본어, 한국어는 흔히 “CJK”라는 약어로 함께 분류됩니다. 이들 언어는 한자를 사용하고 세로쓰기와 가로쓰기를 모두 지원하는 등 여러 공통된 특징이 있습니다. 이 절에서는 ABBYY FineReader Engine 12에서 CJK 언어 텍스트를 인식하고 내보낼 때의 몇 가지 특징을 설명합니다. 먼저 CJK 언어를 인식하려면 중국어, 일본어, 한국어 언어 모듈을 지원하는 ABBYY FineReader Engine 라이선스가 있어야 합니다. 라이선스 및 모듈에 대한 자세한 내용은 Licensing 섹션을 참조하세요.

인식 언어

ABBYY FineReader Engine는 CJK 텍스트에 대해 다음과 같은 미리 정의된 인식 언어를 지원합니다:
  • “ChinesePRC”
  • “ChineseTaiwan”
  • “Japanese”
  • “JapaneseModern”
  • “Korean”
  • “KoreanHangul”
이러한 미리 정의된 언어 중 하나를 선택하려면 RecognizerParams 객체의 SetPredefinedTextLanguage 메서드를 사용할 수 있습니다.
Japanese (Modern) 인식 언어는 일본어, 영어, 그리고 그리스어 문자 4개로 구성된 복합 언어입니다. 이 언어는 일부 한자, 가나(가타카나 또는 히라가나) 문자, 일부 라틴 문자 및/또는 그리스 문자(예: 보고서, 연구 논문 등)를 포함할 수 있는 현대 일본어 텍스트를 인식하기 위한 용도로 설계되었습니다. 주로 일본어로 작성된 모든 문서에서 최상의 인식 결과를 얻으려면 English와의 조합 없이 Japanese (Modern) 인식 언어를 독립적인 언어로 사용할 것을 강력히 권장합니다.
ABBYY FineReader Engine는 이러한 언어들로 구성된 인식 언어 조합과 CJK 및 기타 언어의 조합도 지원합니다.

글꼴

아시아 문자가 깨지는 것을 방지하려면 문서 합성 시 필요한 문자 집합이 포함된 글꼴(예: Arial Unicode MS, SimSun)을 지정해야 합니다. ISynthesisParamsForDocument::FontSet 속성을 사용해 글꼴을 설정할 수 있습니다. FontSet 객체의 SystemFontSet 속성은 기본적으로 문서의 인식 언어에 맞는 시스템 글꼴이 선택되도록 설정되어 있습니다.

내보내기

문서가 동일한 모양으로 표시되도록 하려면 CJK 언어를 “이미지 아래 텍스트” 모드(IPDFExportParams::TextExportMode = PEM_ImageOnText)로 PDF/A에 내보낼 수 있습니다.

인식 및 내보내기 절차

CJK 언어로 작성된 문서를 처리하려면 다음 단계를 수행합니다.
  1. Engine 객체의 CreateDocumentProcessingParams 메서드를 사용하여 DocumentProcessingParams 객체를 생성합니다.
  2. 인식 언어를 지정합니다. PageProcessingParams 하위 객체의 RecognizerParams 하위 객체에 있는 SetPredefinedTextLanguage 메서드를 사용합니다.
  3. CJK 언어에 적합한 글꼴 세트를 선택합니다. SynthesisParamsForDocument 하위 객체의 ISynthesisParamsForDocument::FontSet 속성을 사용합니다.
  4. 구성한 DocumentProcessingParams 객체를 FRDocument 객체의 Process 메서드에 전달합니다. Engine 객체의 메서드를 사용하는 경우에는 내보내기 전에 구성한 SynthesisParamsForDocument 객체를 매개변수로 전달하여 Engine 객체의 synthesis 메서드 중 하나를 호출해야 합니다.
  5. FRDocument 객체의 Export 메서드를 사용하여 인식된 텍스트를 내보냅니다. PDF 또는 PDF/A 형식으로 내보내는 경우에는 필요한 내보내기 모드를 지정합니다.
CJK 언어로 작성된 텍스트에는 Word 객체와 그 속성, 또는 CharParams 객체의 IsWordFirst, IsWordLeftmost 속성을 사용하지 마십시오. 처리 기술은 내부적인 목적으로만 텍스트 줄을 “단어”로 나누며, 이러한 문자 그룹은 실제 단어와 일치하지 않습니다.
// 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 );
...
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 );
...
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 );
...

참고 항목

언어 작업하기