Vai al contenuto principale
Il testo con cui lavora ABBYY FineReader Engine è testo normale, cioè non contiene riquadri, tabelle e così via. Tutti i caratteri sono Unicode. Il testo normale può contenere i seguenti caratteri speciali:
  • 0x2028 — Simbolo di interruzione di riga
  • 0x2029 — Simbolo di interruzione di paragrafo
  • 0xFFFC — Carattere sostitutivo di oggetto (indica un’immagine incorporata nel testo)
  • 0x0009 — Tabulazione
  • 0x005E — Accento circonflesso (^), usato da ABBYY FineReader Engine come sostituto dei caratteri non riconosciuti
  • 0x00AC — Trattino opzionale
Gli attributi e la formattazione del testo sono disponibili tramite gli oggetti e le proprietà corrispondenti. È possibile accedere al testo riconosciuto di un documento tramite il layout della relativa pagina (proprietà IFRPage::Layout).

Testo riconosciuto nel layout

Solo i blocchi di testo, tabella e barcode contengono testo dopo il riconoscimento. Gli altri blocchi non contengono testo. L’oggetto Text consente di accedere al testo riconosciuto dei blocchi di testo e tabella, mentre l’oggetto BarcodeText consente di accedere al testo di un blocco barcode. Per accedere al testo riconosciuto di un blocco, procedi come segue:
  • Per i blocchi di testo
Usa la proprietà ITextBlock::Text. Ottieni il testo del barcode tramite la proprietà IBarcodeBlock::BarcodeText o IBarcodeBlock::Text. La prima restituisce l’oggetto BarcodeText, che è una raccolta di caratteri del barcode riconosciuto (gli oggetti BarcodeSymbol). La seconda restituisce il testo del barcode come un’unica stringa.

Testo e paragrafi

L’oggetto Text contiene una raccolta di paragrafi. Questa raccolta è un oggetto Paragraphs accessibile tramite la proprietà Paragraphs dell’oggetto Text. L’oggetto Paragraphs è una raccolta di oggetti Paragraph. Il testo riconosciuto è accessibile tramite la proprietà IParagraph::Text. Il testo contenuto nella proprietà è una stringa Unicode. Esiste anche un oggetto ParagraphParams che contiene attributi specifici dell’intero paragrafo, come informazioni sull’allineamento e sul rientro. Questo oggetto è accessibile tramite la proprietà IParagraph::ExtendedParams. La proprietà IParagraph::Lines fornisce l’accesso a una raccolta di righe del paragrafo rappresentata dall’oggetto ParagraphLines, che, a sua volta, è una raccolta di oggetti ParagraphLine. Questi ultimi forniscono informazioni sulla posizione geometrica di una singola riga del paragrafo e rappresentano quindi la suddivisione del testo in righe. La proprietà IParagraph::Words fornisce l’accesso a una raccolta di parole del paragrafo rappresentata dall’oggetto Words, che è una raccolta di oggetti Word. L’oggetto Word fornisce l’accesso a una singola parola del paragrafo.

Attributi dei caratteri

Ogni carattere del testo ha parametri propri. È possibile accedervi tramite l’oggetto CharParams. L’oggetto CharParams include un ampio insieme di attributi del carattere, come i parametri geometrici, il font e la lingua. L’oggetto CharParams contiene inoltre il carattere stesso nella proprietà SelectedCharacterRecognitionVariant. Vedi anche Testo normale più sotto per il metodo consigliato per ottenere informazioni su tutti i caratteri di un documento. La posizione di un carattere nel testo è definita dall’indice del paragrafo a cui appartiene e dal suo indice all’interno di tale paragrafo. Esiste anche una cosiddetta “posizione speciale” nel testo: l’indice del paragrafo corrisponde al numero totale di paragrafi e l’indice del carattere è 0. Si tratta del punto di inserimento alla fine del testo. Alcuni metodi dell’oggetto Text eseguono operazioni su questa posizione speciale, ad esempio inserendovi un altro frammento di testo o un’immagine. La proprietà SelectedCharacterRecognitionVariant dell’oggetto CharParams consente di accedere a un insieme esteso di attributi specifici di un singolo carattere, rappresentato dall’oggetto CharacterRecognitionVariant. Questi attributi vengono impostati durante il riconoscimento e forniscono alcune informazioni interne specifiche sul riconoscimento del carattere. In particolare, questo oggetto fornisce informazioni più precise sul grado di attendibilità del riconoscimento del carattere, sulla probabilità che il carattere appartenga a un font con grazie e così via.

Modifica del testo

Puoi provare a modificare gli attributi dell’oggetto Text, ma dovresti farlo con molta cautela se il testo deve essere esportato in un formato esterno. I metodi di esportazione di ABBYY FineReader Engine presuppongono che il testo riconosciuto sia il risultato del riconoscimento e che l’utente si sia limitato a correggere gli errori di riconoscimento, senza apportare altre modifiche. Gli oggetti del gruppo Text hanno molte proprietà interdipendenti e spesso la modifica di una di queste proprietà richiede di intervenire anche su altre. Per questo motivo, le modifiche agli attributi del testo riconosciuto possono talvolta produrre risultati di esportazione imprevedibili.

Testo normale

Puoi anche accedere al testo completo riconosciuto di un documento o di una pagina in uno speciale formato di “testo normale”, rappresentato dall’oggetto PlainText. Fornisce informazioni solo sui caratteri del testo riconosciuto, sul relativo livello di attendibilità del riconoscimento e sulla loro posizione rispetto all’immagine di origine. Tuttavia, può essere utile se devi accedere a questi attributi per tutti i caratteri di un documento di grandi dimensioni. In FRE per Windows: usa il metodo GetCharacterData, che ti consente di ottenere in una sola volta i dati di tutti i caratteri e di elaborarli dal tuo lato. L’iterazione di tutti i blocchi di testo richiederà molto più tempo, soprattutto se l’applicazione funziona tramite DCOM.

Vedi anche

Lavorare con il Layout e i blocchi Lavorare con le lingue Utilizzo degli algoritmi di voto