Riconoscimento delle lingue cinese, giapponese e coreana
Le lingue cinese, giapponese e coreana sono spesso raggruppate sotto l’abbreviazione “CJK”. Presentano diverse caratteristiche comuni, come l’uso dei caratteri cinesi e la scrittura sia in direzione verticale che orizzontale.Questa sezione illustra alcune particolarità del riconoscimento e dell’esportazione di testi nelle lingue CJK con ABBYY FineReader Engine 12.Per prima cosa, per riconoscere le lingue CJK è necessario disporre di una licenza ABBYY FineReader Engine che supporti i moduli linguistici cinese, giapponese e coreano. Per ulteriori informazioni su licenze e moduli, vedere la sezione Gestione delle licenze.
La lingua di riconoscimento Japanese (Modern) è una lingua composta che include il giapponese, l’inglese e quattro lettere dell’alfabeto greco. È pensata per il riconoscimento di testi giapponesi contemporanei, che possono includere alcuni caratteri Kanji, simboli Kana (Katakana o Hiragana) e alcune lettere latine e/o greche (ad esempio in relazioni, articoli di ricerca e così via). Per ottenere i migliori risultati di riconoscimento per tutti i documenti scritti principalmente in giapponese, consigliamo vivamente di usare la lingua di riconoscimento Japanese (Modern) come lingua autonoma, senza combinarla con la lingua inglese.
ABBYY FineReader Engine supporta anche combinazioni di lingue di riconoscimento costituite da più lingue tra quelle indicate oppure da combinazioni di lingue CJK e altre lingue.
Per evitare l’alterazione dei caratteri asiatici, è necessario specificare, per la sintesi del documento, un font che includa il set di caratteri necessario, ad esempio Arial Unicode MS, SimSun. È possibile impostare il font tramite la proprietà ISynthesisParamsForDocument::FontSet. Per impostazione predefinita, la proprietà SystemFontSet dell’oggetto FontSet è configurata per selezionare, tra i font di sistema, quelli corrispondenti alle lingue di riconoscimento del documento.
È possibile esportare le lingue CJK in PDF/A nella modalità “testo sotto l’immagine” (IPDFExportParams::TextExportMode = PEM_ImageOnText) per fare in modo che il documento mantenga lo stesso aspetto.
Passa l’oggetto DocumentProcessingParams configurato al metodo Process dell’oggetto FRDocument. Se usi i metodi dell’oggetto Engine, prima dell’esportazione devi chiamare uno dei metodi di sintesi dell’oggetto Engine con l’oggetto SynthesisParamsForDocument configurato come parametro.
Esporta il testo riconosciuto mediante il metodo Export dell’oggetto FRDocument. Se esporti in formato PDF o PDF/A, specifica la modalità di esportazione richiesta.
Non usare l’oggetto Word e le sue proprietà o le proprietà IsWordFirst, IsWordLeftmost dell’oggetto CharParams per i testi scritti in lingue CJK. La tecnologia di elaborazione divide le righe di testo in “parole” solo per scopi interni e questi gruppi di caratteri non coincidono con le parole effettive.
Codice C++
// Si presume che Engine sia già stato creato// e che il documento sia stato caricatoIEngine* Engine;IFRDocument* frDocument;HRESULT res; // usa questa variabile per verificare se la chiamata al metodo è riuscita...// Crea un oggetto DocumentProcessingParamsIDocumentProcessingParams* params = 0;IPageProcessingParams* pageParams = 0;IRecognizerParams* recParams = 0;res = Engine->CreateDocumentProcessingParams( ¶ms );res = params->get_PageProcessingParams( &pageParams );res = pageParams->get_RecognizerParams( &recParams );// Specifica la lingua di riconoscimentores = 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 );// Seleziona il set di fontres = systemSet->put_FontNamesFilter( FNF_Japanese );// Riconosci ed esporta il documentofrDocument->Process( params );frDocument->Export( L"/opt/Demo.rtf", FEF_RTF, 0 );...
Codice C++ (COM)
FREngine::IEnginePtr Engine;FREngine::IFRDocumentPtr frDocument;...// Crea un oggetto DocumentProcessingParamsFREngine::IDocumentProcessingParamsPtr pDocumentProcessingParams = Engine->CreateDocumentProcessingParams();// Specifica la lingua di riconoscimentopDocumentProcessingParams->PageProcessingParams->RecognizerParams->SetPredefinedTextLanguage( "Japanese" );// Seleziona il set di fontpDocumentProcessingParams->SynthesisParamsForDocument->FontSet->SystemFontSet->FontNamesFilter = FREngine::FNF_Japanese;// Riconosci ed esporta il documentofrDocument->Process( pDocumentProcessingParams );frDocument->Export( L"D:\\Demo.rtf", FREngine::FEF_RTF, 0 );...
Codice C#
FREngine.IEngine engine;FREngine.IFRDocument frdoc;...// Crea un oggetto DocumentProcessingParamsFREngine.IDocumentProcessingParams dpp = engine.CreateDocumentProcessingParams();// Specifica la lingua di riconoscimentodpp.PageProcessingParams.RecognizerParams.SetPredefinedTextLanguage( "Japanese" );// Seleziona il set di fontdpp.SynthesisParamsForDocument.FontSet.SystemFontSet.FontNamesFilter = (int)FREngine.FontNamesFiltersEnum.FNF_Japanese;// Riconosci ed esporta il documentofrdoc.Process( dpp );frdoc.Export( "D:\\Demo.rtf", FREngine.FileExportFormatEnum.FEF_RTF, null );...