Pular para o conteúdo principal
O texto com o qual o ABBYY FineReader Engine trabalha é texto simples, ou seja, não contém molduras, tabelas e assim por diante. Todos os caracteres são Unicode. O texto simples pode conter os seguintes caracteres especiais:
  • 0x2028 — Símbolo de quebra de linha
  • 0x2029 — Símbolo de quebra de parágrafo
  • 0xFFFC — Caractere de substituição de objeto (indica uma imagem incorporada no texto)
  • 0x0009 — Tabulação
  • 0x005E — Acento circunflexo (^), usado pelo ABBYY FineReader Engine como substituto para caracteres não reconhecidos
  • 0x00AC — Hífen opcional
Os atributos e a formatação de um texto estão disponíveis por meio dos objetos e propriedades correspondentes. Você pode acessar o texto reconhecido de um documento por meio da propriedade de layout da página (IFRPage::Layout).

Texto reconhecido no layout

Somente blocos de texto, de tabela e de código de barras contêm texto após o reconhecimento. Os demais blocos não têm texto. O objeto Text fornece acesso ao texto reconhecido dos blocos de texto e de tabela, enquanto o objeto BarcodeText fornece acesso ao texto de um bloco de código de barras. Para acessar o texto reconhecido de um bloco, faça o seguinte:
  • Para blocos de texto
Use a propriedade ITextBlock::Text. Obtenha o texto do código de barras usando a propriedade IBarcodeBlock::BarcodeText ou IBarcodeBlock::Text. A primeira retorna o objeto BarcodeText, que é uma coleção de caracteres do código de barras reconhecido (os objetos BarcodeSymbol). A segunda retorna o texto do código de barras como uma única string.

Texto e parágrafos

O objeto Text contém uma coleção de parágrafos. Essa coleção é um objeto Paragraphs, acessível por meio da propriedade Paragraphs do objeto Text. O objeto Paragraphs é uma coleção de objetos Paragraph. O texto reconhecido pode ser acessado por meio da propriedade IParagraph::Text. O texto dessa propriedade é uma string Unicode. Também existe um objeto ParagraphParams que contém atributos específicos do parágrafo como um todo, como informações sobre alinhamento e recuo. Esse objeto pode ser acessado por meio da propriedade IParagraph::ExtendedParams. A propriedade IParagraph::Lines fornece acesso a uma coleção de linhas do parágrafo representada pelo objeto ParagraphLines, que, por sua vez, é uma coleção de objetos ParagraphLine. Este último fornece informações sobre a posição geométrica de uma única linha do parágrafo e, portanto, representa a divisão do texto em linhas. A propriedade IParagraph::Words fornece acesso a uma coleção de palavras do parágrafo representada pelo objeto Words, que é uma coleção de objetos Word. O objeto Word fornece acesso a uma única palavra do parágrafo.

Atributos dos caracteres

Cada caractere do texto tem seus próprios parâmetros. Eles podem ser acessados por meio do objeto CharParams. O objeto CharParams tem um amplo conjunto de atributos de caractere, como parâmetros geométricos, fonte e idioma. O objeto CharParams contém o próprio caractere na propriedade SelectedCharacterRecognitionVariant. Veja também texto simples abaixo para ver a forma recomendada de obter informações sobre todos os caracteres em um documento. A posição de um caractere no texto é definida pelo índice do parágrafo ao qual ele pertence e pelo seu próprio índice nesse parágrafo. Também existe a chamada “posição especial” no texto: o índice do parágrafo é o número total de parágrafos, e o índice do caractere é 0. Esse é o ponto de inserção no final do texto. Alguns métodos do objeto Text executam operações com essa posição especial, isto é, inserem nela outro fragmento de texto ou uma imagem. A propriedade SelectedCharacterRecognitionVariant do objeto CharParams fornece acesso a um conjunto estendido de atributos específicos de um único caractere, representado pelo objeto CharacterRecognitionVariant. Esses atributos são definidos durante o reconhecimento e fornecem algumas informações internas de reconhecimento específicas do caractere. Em particular, esse objeto fornece informações mais precisas sobre a confiabilidade do reconhecimento de caracteres, a probabilidade de o caractere estar em uma fonte com serifa etc.

Edição de texto

Você pode tentar alterar os atributos do objeto Text, mas deve fazer isso com muito cuidado se o texto for exportado para um formato externo. Os métodos de exportação do ABBYY FineReader Engine pressupõem que o texto reconhecido é o resultado do reconhecimento e que o usuário apenas corrigiu erros de reconhecimento, sem fazer nenhuma outra alteração. Os objetos do grupo Text têm muitas propriedades interdependentes, e muitas vezes alterar uma dessas propriedades exige alterar outras também. Por esse motivo, alterações nos atributos do texto reconhecido às vezes podem resultar em resultados de exportação imprevisíveis.

Texto simples

Você também pode acessar todo o texto reconhecido de um documento ou de uma página em um formato especial de “texto simples”, representado pelo objeto PlainText. Ele fornece informações apenas sobre os símbolos de texto reconhecidos, o nível de confiança do reconhecimento e suas posições em relação à imagem de origem. No entanto, pode ser útil se você precisar acessar esses atributos de todos os caracteres em um documento grande. No FRE para Windows: use o método GetCharacterData, que permite obter os dados de todos os caracteres de uma só vez e percorrê-los no seu código. Percorrer todos os blocos de texto levará consideravelmente mais tempo, especialmente se o seu aplicativo estiver sendo executado via DCOM.

Veja também

Trabalhando com Layout e Blocos Trabalhando com idiomas Usando algoritmos de votação