Como extrair resultados de leitura em C# com IronOCR
O método Read do IronOCR retorna um objeto OcrResult contendo texto extraído mais metadados detalhados, incluindo coordenadas precisas, dimensões, direção do texto e estrutura hierárquica (parágrafos, linhas, palavras, caracteres) para cada elemento detectado.
O resultado do OCR contém informações abrangentes sobre os parágrafos, linhas, palavras e caracteres individuais detectados.
Para cada elemento, fornece o conteúdo do texto, coordenadas X e Y precisas, dimensões (largura e altura), direção do texto (Esquerda para Direita ou de Cima para Baixo), e localização em um objeto CropRectangle.
Use o método Read do IronTesseract para fazer OCR de uma imagem e extrair o texto da primeira palavra usando a coleção Palavras.
-
1Install IronOCR with NuGet Package Manager
-
2Copie e execute este trecho de código.
string wordText = new IronTesseract().Read("file.jpg").Palavras[0].Text;C# -
3Implante para testar em seu ambiente de produção.
Comece a usar IronOCR em seu projeto hoje com uma avaliação gratuita
Fluxo de trabalho mínimo (5 etapas)
- Baixe uma biblioteca C# para acessar os resultados da leitura.
- Prepare a imagem de destino e o documento PDF.
- Utilize o método
Readpara realizar o OCR no documento importado. - Acesse o
X,Y,largura,altura, edireção do textodo resultado - Verifique os parágrafos, linhas, palavras e comparações de caracteres detectados.
Que dados posso extrair dos resultados do OCR?
O valor resultante contém não apenas o texto extraído, mas também informações sobre páginas, parágrafos, linhas, palavras, caracteres e códigos de barras descobertos em documentos PDF e de imagem pelo IronOCR. Você pode acessar essas informações a partir do objeto OcrResult retornado usando o método Read.
O sistema de resultados abrangente do IronOCR baseia-se no poderoso mecanismo Tesseract 5 , fornecendo aos desenvolvedores recursos de extração de dados estruturados que vão além do simples reconhecimento de texto. Seja processando documentos escaneados, fotos, ou capturas de tela, a classe OcrResult oferece controle granular sobre os dados extraídos.
using IronOcr;
using System;
using static IronOcr.OcrResult;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Add image
using var imageInput = new OcrImageInput("sample.jpg");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
// Retrieve list of detected paragraphs
Paragraph[] paragraphs = ocrResult.Paragraphs;
// Output information to console
Console.WriteLine($"Text: {paragraphs[0].Text}");
Console.WriteLine($"X: {paragraphs[0].X}");
Console.WriteLine($"Y: {paragraphs[0].Y}");
Console.WriteLine($"Width: {paragraphs[0].Width}");
Console.WriteLine($"Height: {paragraphs[0].Height}");
Console.WriteLine($"Text direction: {paragraphs[0].TextDirection}");Imports IronOcr
Imports System
Imports IronOcr.OcrResult
' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()
' Add image
Private imageInput = New OcrImageInput("sample.jpg")
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)
' Retrieve list of detected paragraphs
Private paragraphs() As Paragraph = ocrResult.Paragraphs
' Output information to console
Console.WriteLine($"Text: {paragraphs(0).Text}")
Console.WriteLine($"X: {paragraphs(0).X}")
Console.WriteLine($"Y: {paragraphs(0).Y}")
Console.WriteLine($"Width: {paragraphs(0).Width}")
Console.WriteLine($"Height: {paragraphs(0).Height}")
Console.WriteLine($"Text direction: {paragraphs(0).TextDirection}")
Como posso acessar o conteúdo de texto dos resultados do OCR?
O objeto OcrResult apresenta o texto extraído de uma maneira simples e intuitiva, permitindo que os desenvolvedores o usem diretamente ou o integrem a outros componentes de aplicativo. A estrutura hierárquica espelha a organização natural do texto em documentos, facilitando o trabalho com conteúdo em diferentes níveis de granularidade.
Para aplicações que exigem suporte a vários idiomas , o IronOCR lida perfeitamente com documentos multilíngues, mantendo o mesmo formato de resultado estruturado em todos os 125 idiomas suportados .
O exemplo de código a seguir imprime texto em um loop para verificar os resultados.
using IronOcr;
using System;
using static IronOcr.OcrResult;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Add image
using var imageInput = new OcrImageInput("sampleText.png");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
// Retrieve list of detected paragraphs
Paragraph[] paragraphs = ocrResult.Paragraphs;
// Loop through each paragraph in the array
Console.WriteLine("--- All Detected Paragraphs ---");
foreach (Paragraph paragraph in paragraphs)
{
// Print the text of the current paragraph
Console.WriteLine(paragraph.Text);
// Add a blank line for better separation (optional)
Console.WriteLine();
}Imports IronOcr
Imports System
Imports IronOcr.OcrResult
' Instantiate IronTesseract
Dim ocrTesseract As New IronTesseract()
' Add image
Using imageInput As New OcrImageInput("sampleText.png")
' Perform OCR
Dim ocrResult As OcrResult = ocrTesseract.Read(imageInput)
' Retrieve list of detected paragraphs
Dim paragraphs As Paragraph() = ocrResult.Paragraphs
' Loop through each paragraph in the array
Console.WriteLine("--- All Detected Paragraphs ---")
For Each paragraph As Paragraph In paragraphs
' Print the text of the current paragraph
Console.WriteLine(paragraph.Text)
' Add a blank line for better separation (optional)
Console.WriteLine()
Next
End UsingSaída

A saída do console mostra o IronOCR extraindo o texto do parágrafo linha por linha com precisão. O mecanismo detecta automaticamente os limites dos parágrafos, tornando-o ideal para processar documentos complexos com vários blocos de texto.
Como posso obter as coordenadas de localização do texto detectado?
Além do texto extraído, o OcrResult fornece dados detalhados de localização. Essa informação espacial é crucial para aplicações que precisam manter a fidelidade do layout ou realizar extração de texto direcionada de regiões específicas do documento. O sistema de coordenadas utiliza medidas de pixel padrão a partir do canto superior esquerdo da página.
Para maior precisão em operações baseadas em coordenadas, considere usar o direcionamento regional por OCR para focar em áreas específicas ou aproveite os recursos de Visão Computacional para identificar automaticamente regiões de texto.
O código a seguir demonstra a iteração sobre cada parágrafo e a impressão de suas coordenadas (X e Y) no console.
using IronOcr;
using System;
using static IronOcr.OcrResult;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Add image
using var imageInput = new OcrImageInput("sampleText.png");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);
// Retrieve list of detected paragraphs
Paragraph[] paragraphs = ocrResult.Paragraphs;
Console.WriteLine("--- All Detected Coordinates of Paragraphs ---");
// Use a 'for' loop to get an index for each paragraph
for (int i = 0; i < paragraphs.Length; i++)
{
// Get the current paragraph
Paragraph paragraph = paragraphs[i];
// Print the paragraph number, text, and its location
Console.WriteLine($"X: {paragraph.X}"); // X-coordinate (left edge)
Console.WriteLine($"Y: {paragraph.Y}"); // Y-coordinate (top edge)
// Add a blank line for better separation
Console.WriteLine();
}Imports IronOcr
Imports System
Imports IronOcr.OcrResult
' Instantiate IronTesseract
Dim ocrTesseract As New IronTesseract()
' Add image
Using imageInput As New OcrImageInput("sampleText.png")
' Perform OCR
Dim ocrResult As OcrResult = ocrTesseract.Read(imageInput)
' Retrieve list of detected paragraphs
Dim paragraphs As Paragraph() = ocrResult.Paragraphs
Console.WriteLine("--- All Detected Coordinates of Paragraphs ---")
' Use a 'for' loop to get an index for each paragraph
For i As Integer = 0 To paragraphs.Length - 1
' Get the current paragraph
Dim paragraph As Paragraph = paragraphs(i)
' Print the paragraph number, text, and its location
Console.WriteLine($"X: {paragraph.X}") ' X-coordinate (left edge)
Console.WriteLine($"Y: {paragraph.Y}") ' Y-coordinate (top edge)
' Add a blank line for better separation
Console.WriteLine()
Next
End UsingSaída

O resultado mostra três conjuntos de coordenadas correspondentes a três parágrafos. Essas coordenadas podem ser usadas para desenhar caixas delimitadoras, extrair regiões específicas ou manter relações espaciais entre elementos de texto.
Que outros atributos estão disponíveis nos resultados do OCR?
Além do texto e das coordenadas do texto, o IronOCR fornece informações adicionais. Para cada elemento de texto (parágrafos, linhas, palavras e caracteres individuais), as seguintes informações estão disponíveis:
- Texto: O texto propriamente dito, em formato de cadeia de caracteres.
- X: A posição a partir da borda esquerda da página, em pixels.
- Y: A posição a partir da borda superior da página, em pixels.
- Largura: A largura em pixels.
- Altura: A altura em pixels.
- Direção do texto: a direção em que o texto foi lido (da esquerda para a direita ou de cima para baixo).
- Localização: Um retângulo que mostra onde este texto está na página, em pixels.
Esses atributos são particularmente úteis na implementação de:
- Sistemas de realce e anotação de texto
- Detecção automática de campos de formulário
- Preservação do layout na conversão de documentos
- Análise espacial de texto para extração de dados
Para depuração e visualização, utilize o recurso de realce de texto para verificar visualmente a precisão da região detectada.
Como se comparam parágrafos, linhas, palavras e caracteres?
A estrutura hierárquica de texto do IronOCR permite que os desenvolvedores trabalhem no nível de detalhe apropriado para seu caso de uso específico. Compreender as diferenças entre esses elementos ajuda a escolher a granularidade correta para sua aplicação.
A seguir, encontra-se a comparação dos parágrafos, linhas, palavras e caracteres detectados.
![]() Parágrafo | ![]() Linha |
![]() Palavra | ![]() Personagem |
Cada nível de granularidade serve a propósitos diferentes:
- Parágrafos : Ideal para análise da estrutura de documentos e extração de texto em massa.
- Linhas : Úteis para manter a ordem de leitura e processar dados tabulares.
- Palavras : Ideal para funcionalidades de busca e análise de texto
- Caracteres : Perfeitos para verificação ortográfica e edição de texto precisa.
O IronOCR consegue ler códigos de barras e códigos QR?
Sim, o IronOCR consegue ler códigos de barras e códigos QR. Embora o recurso possa não ser tão robusto quanto o IronBarcode, IronOCR fornece suporte para tipos comuns de código de barras. Para habilitar a detecção de código de barras, defina a propriedade Configuration.ReadBarCodes para verdadeiro. Essa funcionalidade integrada torna o IronOCR uma excelente opção para processar documentos que contenham texto e códigos de barras, como faturas, etiquetas de envio ou catálogos de produtos.
Além disso, informações valiosas podem ser extraídas de códigos de barras detectados, incluindo formato, valor, coordenadas (x, y), altura, largura e localização como objeto IronSoftware.Drawing.Rectangle. A classe Rectangle do IronDrawing permite um posicionamento preciso no documento.
Para cenários de leitura de código de barras mais avançados, consulte os exemplos abrangentes de leitura de código de barras em nossa documentação.
using IronOcr;
using System;
using static IronOcr.OcrResult;
// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();
// Enable barcodes detection
ocrTesseract.Configuration.ReadBarCodes = true;
// Add image
using OcrInput ocrInput = new OcrInput();
ocrInput.LoadPdf("sample.pdf");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(ocrInput);
// Output information to console
foreach(var barcode in ocrResult.Barcodes)
{
Console.WriteLine("Format = " + barcode.Format);
Console.WriteLine("Value = " + barcode.Value);
Console.WriteLine("X = " + barcode.X);
Console.WriteLine("Y = " + barcode.Y);
}
Console.WriteLine(ocrResult.Text);Imports IronOcr
Imports System
Imports IronOcr.OcrResult
' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()
' Enable barcodes detection
ocrTesseract.Configuration.ReadBarCodes = True
' Add image
Using ocrInput As New OcrInput()
ocrInput.LoadPdf("sample.pdf")
' Perform OCR
Dim ocrResult As OcrResult = ocrTesseract.Read(ocrInput)
' Output information to console
For Each barcode In ocrResult.Barcodes
Console.WriteLine("Format = " & barcode.Format)
Console.WriteLine("Value = " & barcode.Value)
Console.WriteLine("X = " & barcode.X)
Console.WriteLine("Y = " & barcode.Y)
Next barcode
Console.WriteLine(ocrResult.Text)
End UsingQual é a aparência do resultado da detecção de código de barras?
O recurso de detecção de código de barras do IronOCR integra-se perfeitamente à extração de texto, fornecendo resultados unificados que incluem tanto o conteúdo textual quanto os dados do código de barras. Essa capacidade dupla é valiosa para fluxos de trabalho automatizados de processamento de documentos, onde ambos os tipos de informação precisam ser extraídos e correlacionados.

O resultado demonstra a capacidade do IronOCR de detectar vários tipos de código de barras simultaneamente, fornecendo identificação de formato (como QRCode ou EAN8), valores decodificados e informações de coordenadas precisas para cada código detectado. Esses dados abrangentes permitem que os desenvolvedores criem aplicativos sofisticados de processamento de documentos que lidam com tipos de conteúdo mistos de forma eficiente.
Perguntas frequentes
Que informações o objeto OcrResult contém?
O objeto OcrResult do IronOCR contém o texto extraído, além de metadados detalhados, incluindo coordenadas X/Y precisas, dimensões (largura e altura), direção do texto (da esquerda para a direita ou de cima para baixo) e estrutura hierárquica organizada em parágrafos, linhas, palavras e caracteres individuais para cada elemento detectado.
Como posso extrair rapidamente a primeira palavra de um resultado de OCR?
Você pode extrair o texto da primeira palavra usando o método Read do IronOCR e acessando a coleção Words: `string wordText = new IronTesseract().Read("file.jpg").Words[0].Text;`. Isso fornece acesso instantâneo a elementos de palavras individuais dos resultados do OCR.
Que tipos de dados de coordenadas estão disponíveis nos resultados de OCR?
O IronOCR fornece coordenadas X e Y precisas para cada elemento detectado (parágrafos, linhas, palavras e caracteres), juntamente com as dimensões de largura e altura. Esses dados de coordenadas são acessíveis por meio do objeto CropRectangle, permitindo o rastreamento preciso da localização dos elementos de texto.
Posso extrair metadados além do conteúdo textual?
Sim, o IronOCR extrai metadados abrangentes, incluindo páginas, parágrafos, linhas, palavras, caracteres e até mesmo códigos de barras encontrados em documentos PDF e imagens. O objeto OcrResult fornece acesso à direção do texto, à estrutura hierárquica e às informações espaciais de cada elemento.
Que tipos de documentos podem ser processados para resultados de OCR?
O IronOCR pode processar vários tipos de documentos, incluindo documentos digitalizados, fotos, capturas de tela, PDFs e arquivos de imagem. O método Read funciona de forma consistente em todos esses formatos, retornando o mesmo objeto OcrResult estruturado com metadados completos.
Como o texto extraído é organizado nos resultados?
O IronOCR organiza o texto extraído em uma estrutura hierárquica que espelha a organização natural de um documento. O objeto OcrResult apresenta o conteúdo em diferentes níveis de granularidade — desde páginas inteiras até caracteres individuais — facilitando o trabalho com o texto no nível apropriado para sua aplicação.
Can IronOCR read barcodes and QR codes?
Yes, IronOCR can read common barcode types, including QR codes, by enabling barcode detection in the configuration. This integration allows for comprehensive processing of documents containing both text and barcodes.
How does IronOCR help with hierarchical text analysis?
IronOCR's hierarchical text structure allows developers to work at different granularity levels, such as paragraphs, lines, words, and characters, making it suitable for various applications like document structure analysis and text search functionality.
What advanced features does IronOCR offer for coordinate-based operations?
IronOCR offers OCR region targeting for focused text extraction and Computer Vision capabilities to automatically identify text regions, enhancing precision in coordinate-based applications.
What does the barcode detection output look like in IronOCR?
The barcode detection output in IronOCR includes format identification, decoded values, and precise coordinates, seamlessly integrated with text extraction for efficient processing of mixed content documents.

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.



