중국어, 일본어, 한국어는 흔히 “CJK”라는 약어로 함께 분류됩니다. 이들 언어는 한자를 사용하고 세로쓰기와 가로쓰기를 모두 지원하는 등 여러 공통된 특징이 있습니다.이 절에서는 ABBYY FineReader Engine 12에서 CJK 언어 텍스트를 인식하고 내보낼 때의 몇 가지 특징을 설명합니다.먼저 CJK 언어를 인식하려면 중국어, 일본어, 한국어 언어 모듈을 지원하는 ABBYY FineReader Engine 라이선스가 있어야 합니다. 라이선스 및 모듈에 대한 자세한 내용은 Licensing 섹션을 참조하세요.
Japanese (Modern) 인식 언어는 일본어, 영어, 그리고 그리스어 문자 4개로 구성된 복합 언어입니다. 이 언어는 일부 한자, 가나(가타카나 또는 히라가나) 문자, 일부 라틴 문자 및/또는 그리스 문자(예: 보고서, 연구 논문 등)를 포함할 수 있는 현대 일본어 텍스트를 인식하기 위한 용도로 설계되었습니다. 주로 일본어로 작성된 모든 문서에서 최상의 인식 결과를 얻으려면 English와의 조합 없이 Japanese (Modern) 인식 언어를 독립적인 언어로 사용할 것을 강력히 권장합니다.
ABBYY FineReader Engine는 이러한 언어들로 구성된 인식 언어 조합과 CJK 및 기타 언어의 조합도 지원합니다.
아시아 문자가 깨지는 것을 방지하려면 문서 합성 시 필요한 문자 집합이 포함된 글꼴(예: Arial Unicode MS, SimSun)을 지정해야 합니다. ISynthesisParamsForDocument::FontSet 속성을 사용해 글꼴을 설정할 수 있습니다. FontSet 객체의 SystemFontSet 속성은 기본적으로 문서의 인식 언어에 맞는 시스템 글꼴이 선택되도록 설정되어 있습니다.
구성한 DocumentProcessingParams 객체를 FRDocument 객체의 Process 메서드에 전달합니다. Engine 객체의 메서드를 사용하는 경우에는 내보내기 전에 구성한 SynthesisParamsForDocument 객체를 매개변수로 전달하여 Engine 객체의 synthesis 메서드 중 하나를 호출해야 합니다.
FRDocument 객체의 Export 메서드를 사용하여 인식된 텍스트를 내보냅니다. PDF 또는 PDF/A 형식으로 내보내는 경우에는 필요한 내보내기 모드를 지정합니다.
CJK 언어로 작성된 텍스트에는 Word 객체와 그 속성, 또는 CharParams 객체의 IsWordFirst, IsWordLeftmost 속성을 사용하지 마십시오. 처리 기술은 내부적인 목적으로만 텍스트 줄을 “단어”로 나누며, 이러한 문자 그룹은 실제 단어와 일치하지 않습니다.
C++ 코드
// 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 );...
C++ (COM) 코드
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 );...
C# 코드
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 );...