Vai al contenuto principale
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.

Lingue di riconoscimento

ABBYY FineReader Engine supporta le seguenti lingue di riconoscimento predefinite per i testi CJK:
  • “ChinesePRC”
  • “ChineseTaiwan”
  • “Japanese”
  • “JapaneseModern”
  • “Korean”
  • “KoreanHangul”
Per selezionare una di queste lingue predefinite, è possibile usare il metodo SetPredefinedTextLanguage dell’oggetto RecognizerParams.
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.

Font

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.

Esportazione

È 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.

Procedura di riconoscimento ed esportazione

Per elaborare documenti scritti in lingue CJK, procedi come segue:
  1. Crea un oggetto DocumentProcessingParams usando il metodo CreateDocumentProcessingParams dell’oggetto Engine.
  2. Specifica la lingua di riconoscimento. Usa il metodo SetPredefinedTextLanguage del sottooggetto RecognizerParams del sottooggetto PageProcessingParams.
  3. Seleziona il set di font adatto alle lingue CJK. Usa la proprietà ISynthesisParamsForDocument::FontSet del sottooggetto SynthesisParamsForDocument.
  4. 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.
  5. 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.
// Si presume che Engine sia già stato creato
// e che il documento sia stato caricato
IEngine* Engine;
IFRDocument* frDocument;
HRESULT res; // usa questa variabile per verificare se la chiamata al metodo è riuscita
...
// Crea un oggetto DocumentProcessingParams
IDocumentProcessingParams* 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 riconoscimento
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 );
 
// Seleziona il set di font
res = systemSet->put_FontNamesFilter( FNF_Japanese );
// Riconosci ed esporta il documento
frDocument->Process( params );
frDocument->Export( L"/opt/Demo.rtf", FEF_RTF, 0 );
...
FREngine::IEnginePtr Engine;
FREngine::IFRDocumentPtr frDocument;
...
// Crea un oggetto DocumentProcessingParams
FREngine::IDocumentProcessingParamsPtr pDocumentProcessingParams = Engine->CreateDocumentProcessingParams();
// Specifica la lingua di riconoscimento
pDocumentProcessingParams->PageProcessingParams->RecognizerParams->SetPredefinedTextLanguage( "Japanese" );
// Seleziona il set di font
pDocumentProcessingParams->SynthesisParamsForDocument->FontSet->SystemFontSet->FontNamesFilter = FREngine::FNF_Japanese;
// Riconosci ed esporta il documento
frDocument->Process( pDocumentProcessingParams );
frDocument->Export( L"D:\\Demo.rtf", FREngine::FEF_RTF, 0 );
...
FREngine.IEngine engine;
FREngine.IFRDocument frdoc;
...
// Crea un oggetto DocumentProcessingParams
FREngine.IDocumentProcessingParams dpp = engine.CreateDocumentProcessingParams();
// Specifica la lingua di riconoscimento
dpp.PageProcessingParams.RecognizerParams.SetPredefinedTextLanguage( "Japanese" );
// Seleziona il set di font
dpp.SynthesisParamsForDocument.FontSet.SystemFontSet.FontNamesFilter = (int)FREngine.FontNamesFiltersEnum.FNF_Japanese;
// Riconosci ed esporta il documento
frdoc.Process( dpp );
frdoc.Export( "D:\\Demo.rtf", FREngine.FileExportFormatEnum.FEF_RTF, null );
...

Vedi anche

Uso delle lingue