C# + VB.NET: AutoOcr AutoOcr
using IronOcr;

string imageText = new IronTesseract().Read(@"images\image.png").Text;
Imports IronOcr

Private imageText As String = (New IronTesseract()).Read("images\image.png").Text

IronOCR es único en su capacidad para detectar y leer automáticamente texto de imágenes escaneadas imperfectas y documentos PDF. La clase IronTesseract proporciona la API más sencilla.

Pruebe Otros ejemplos de código para obtener un control detallado de sus operaciones de OCR en C#.

IronOCR proporciona la versión más avanzada de Tesseract conocida en cualquier lugar y plataforma. Con mayor velocidad, precisión y una DLL y API nativas.

Compatible con Tesseract 3, Tesseract 4 y Tesseract 5 para .NET Framework, Standard, Core, Xamarin y Mono.

C# + VB.NET: Lenguas internacionales Lenguas internacionales
using IronOcr;
using System;

var ocrTesseract = new IronTesseract();

ocrTesseract.Language = OcrLanguage.Arabic;

using (var ocrInput = new OcrInput())
{
    ocrInput.LoadImage(@"images\arabic.gif");
    var ocrResult = ocrTesseract.Read(ocrInput);
    Console.WriteLine(ocrResult.Text);
}

//  Ejemplo en el que se utiliza una fuente personalizada:

var ocrTesseractCustomerLang = new IronTesseract();
ocrTesseractCustomerLang.UseCustomTesseractLanguageFile("custom_tesseract_files/custom.traineddata");
ocrTesseractCustomerLang.AddSecondaryLanguage(OcrLanguage.EnglishBest);

using (var ocrInput = new OcrInput())
{
    ocrInput.LoadPdf(@"images\mixed-lang.pdf");
    var ocrResult = ocrTesseractCustomerLang.Read(ocrInput);
    Console.WriteLine(ocrResult.Text);
}
Imports IronOcr
Imports System

Private ocrTesseract = New IronTesseract()

ocrTesseract.Language = OcrLanguage.Arabic

Using ocrInput As New OcrInput()
	ocrInput.LoadImage("images\arabic.gif")
	Dim ocrResult = ocrTesseract.Read(ocrInput)
	Console.WriteLine(ocrResult.Text)
End Using

'  Ejemplo en el que se utiliza una fuente personalizada:

Dim ocrTesseractCustomerLang = New IronTesseract()
ocrTesseractCustomerLang.UseCustomTesseractLanguageFile("custom_tesseract_files/custom.traineddata")
ocrTesseractCustomerLang.AddSecondaryLanguage(OcrLanguage.EnglishBest)

Using ocrInput As New OcrInput()
	ocrInput.LoadPdf("images\mixed-lang.pdf")
	Dim ocrResult = ocrTesseractCustomerLang.Read(ocrInput)
	Console.WriteLine(ocrResult.Text)
End Using

IronOCR admite 125 idiomas internacionales.

Aparte del inglés, que se instala por defecto, puede añadir paquetes de idiomas a su proyecto .NET a través de NuGet o descargándolos de nuestra página web Página de idiomas.

La mayoría de las lenguas están disponibles en Rápido, Estándar (recomendado) y la mejor calidad. El mejor puede ser más preciso, pero también es más lento.

C# + VB.NET: Objetos de resultados Objetos de resultados
using IronOcr;
using IronSoftware.Drawing;

//  Podemos profundizar en los resultados del OCR como un modelo de objeto de
//  Páginas, códigos de barras, párrafos, líneas, palabras y caracteres
//  Esto nos permite explorar, exportar y dibujar contenidos OCR utilizando otras API/
var ocrTesseract = new IronTesseract();

ocrTesseract.Configuration.ReadBarCodes = true;

using var ocrInput = new OcrInput();
var pages = new int[] { 1, 2 };
ocrInput.LoadImageFrames("example.tiff", pages);

OcrResult ocrResult = ocrTesseract.Read(ocrInput);
foreach (var page in ocrResult.Pages)
{
    //  Página objeto
    int PageNumber = page.PageNumber;
    string PageText = page.Text;
    int PageWordCount = page.WordCount;
    //  null si no establecemos Ocr.Configuration.ReadBarCodes = true;
    OcrResult.Barcode[] Barcodes = page.Barcodes;
    AnyBitmap PageImage = page.ToBitmap(ocrInput);
    int PageWidth = page.Width;
    int PageHeight = page.Height;
    double PageRotation = page.Rotation; //  corrección angular en grados de OcrInput.Deskew()

    foreach (var paragraph in page.Paragraphs)
    {
        //  Páginas -> Párrafos
        int ParagraphNumber = paragraph.ParagraphNumber;
        string ParagraphText = paragraph.Text;
        AnyBitmap ParagraphImage = paragraph.ToBitmap(ocrInput);
        int ParagraphX_location = paragraph.X;
        int ParagraphY_location = paragraph.Y;
        int ParagraphWidth = paragraph.Width;
        int ParagraphHeight = paragraph.Height;
        double ParagraphOcrAccuracy = paragraph.Confidence;
        OcrResult.TextFlow paragrapthText_direction = paragraph.TextDirection;
        foreach (var line in paragraph.Lines)
        {
            //  Páginas -> Párrafos -> Líneas
            int LineNumber = line.LineNumber;
            string LineText = line.Text;
            AnyBitmap LineImage = line.ToBitmap(ocrInput);
            int LineX_location = line.X;
            int LineY_location = line.Y;
            int LineWidth = line.Width;
            int LineHeight = line.Height;
            double LineOcrAccuracy = line.Confidence;
            double LineSkew = line.BaselineAngle;
            double LineOffset = line.BaselineOffset;
            foreach (var word in line.Words)
            {
                //  Páginas -> Párrafos -> Líneas -> Palabras
                int WordNumber = word.WordNumber;
                string WordText = word.Text;
                AnyBitmap WordImage = word.ToBitmap(ocrInput);
                int WordX_location = word.X;
                int WordY_location = word.Y;
                int WordWidth = word.Width;
                int WordHeight = word.Height;
                double WordOcrAccuracy = word.Confidence;
                foreach (var character in word.Characters)
                {
                    //  Páginas -> Párrafos -> Líneas -> Palabras -> Caracteres
                    int CharacterNumber = character.CharacterNumber;
                    string CharacterText = character.Text;
                    AnyBitmap CharacterImage = character.ToBitmap(ocrInput);
                    int CharacterX_location = character.X;
                    int CharacterY_location = character.Y;
                    int CharacterWidth = character.Width;
                    int CharacterHeight = character.Height;
                    double CharacterOcrAccuracy = character.Confidence;
                    //  Salida de opciones de símbolos alternativos y su probabilidad.
                    //  Muy útil para la corrección ortográfica
                    OcrResult.Choice[] Choices = character.Choices;
                }
            }
        }
    }
}
Imports IronOcr
Imports IronSoftware.Drawing

'  Podemos profundizar en los resultados del OCR como un modelo de objeto de
'  Páginas, códigos de barras, párrafos, líneas, palabras y caracteres
'  Esto nos permite explorar, exportar y dibujar contenidos OCR utilizando otras API/
Private ocrTesseract = New IronTesseract()

ocrTesseract.Configuration.ReadBarCodes = True

Dim ocrInput As New OcrInput()
Dim pages = New Integer() { 1, 2 }
ocrInput.LoadImageFrames("example.tiff", pages)

Dim ocrResult As OcrResult = ocrTesseract.Read(ocrInput)
For Each page In ocrResult.Pages
	'  Página objeto
	Dim PageNumber As Integer = page.PageNumber
	Dim PageText As String = page.Text
	Dim PageWordCount As Integer = page.WordCount
	'  null si no establecemos Ocr.Configuration.ReadBarCodes = true;
	Dim Barcodes() As OcrResult.Barcode = page.Barcodes
	Dim PageImage As AnyBitmap = page.ToBitmap(ocrInput)
	Dim PageWidth As Integer = page.Width
	Dim PageHeight As Integer = page.Height
	Dim PageRotation As Double = page.Rotation '  corrección angular en grados de OcrInput.Deskew()

	For Each paragraph In page.Paragraphs
		'  Páginas -> Párrafos
		Dim ParagraphNumber As Integer = paragraph.ParagraphNumber
		Dim ParagraphText As String = paragraph.Text
		Dim ParagraphImage As AnyBitmap = paragraph.ToBitmap(ocrInput)
		Dim ParagraphX_location As Integer = paragraph.X
		Dim ParagraphY_location As Integer = paragraph.Y
		Dim ParagraphWidth As Integer = paragraph.Width
		Dim ParagraphHeight As Integer = paragraph.Height
		Dim ParagraphOcrAccuracy As Double = paragraph.Confidence
		Dim paragrapthText_direction As OcrResult.TextFlow = paragraph.TextDirection
		For Each line In paragraph.Lines
			'  Páginas -> Párrafos -> Líneas
			Dim LineNumber As Integer = line.LineNumber
			Dim LineText As String = line.Text
			Dim LineImage As AnyBitmap = line.ToBitmap(ocrInput)
			Dim LineX_location As Integer = line.X
			Dim LineY_location As Integer = line.Y
			Dim LineWidth As Integer = line.Width
			Dim LineHeight As Integer = line.Height
			Dim LineOcrAccuracy As Double = line.Confidence
			Dim LineSkew As Double = line.BaselineAngle
			Dim LineOffset As Double = line.BaselineOffset
			For Each word In line.Words
				'  Páginas -> Párrafos -> Líneas -> Palabras
				Dim WordNumber As Integer = word.WordNumber
				Dim WordText As String = word.Text
				Dim WordImage As AnyBitmap = word.ToBitmap(ocrInput)
				Dim WordX_location As Integer = word.X
				Dim WordY_location As Integer = word.Y
				Dim WordWidth As Integer = word.Width
				Dim WordHeight As Integer = word.Height
				Dim WordOcrAccuracy As Double = word.Confidence
				For Each character In word.Characters
					'  Páginas -> Párrafos -> Líneas -> Palabras -> Caracteres
					Dim CharacterNumber As Integer = character.CharacterNumber
					Dim CharacterText As String = character.Text
					Dim CharacterImage As AnyBitmap = character.ToBitmap(ocrInput)
					Dim CharacterX_location As Integer = character.X
					Dim CharacterY_location As Integer = character.Y
					Dim CharacterWidth As Integer = character.Width
					Dim CharacterHeight As Integer = character.Height
					Dim CharacterOcrAccuracy As Double = character.Confidence
					'  Salida de opciones de símbolos alternativos y su probabilidad.
					'  Muy útil para la corrección ortográfica
					Dim Choices() As OcrResult.Choice = character.Choices
				Next character
			Next word
		Next line
	Next paragraph
Next page

IronOCR devuelve un objeto de resultado avanzado por cada página que escanea utilizando Tesseract 5. Contiene datos de localización, imágenes, texto, confianza estadística, opciones de símbolos alternativos, nombres de fuentes, decoración de tamaños de fuentes, pesos de fuentes y posición para cada uno:

  • Página
  • Párrafo
  • Línea de texto
  • Palabra
  • Carácter individual
  • y código de barras

Apoyo de nuestro equipo

Para consultas sobre productos o licencias, el equipo de Iron está a su disposición. Envíenos sus preguntas y nos aseguraremos de que la persona adecuada de Iron las responda por usted.

Ponte en contacto

OCR de imágenes a texto en aplicaciones VB.NET

Se pueden enviar una o varias páginas a IronOCR. Recibirá como resultado todo el contenido de texto, código de barras y QR. Agregue funcionalidad OCR a aplicaciones de consola .NET, Web o de escritorio. Las imágenes pueden ser enviadas como PDF, JPG, PNG, GIF, BMP y TIFF.

Hecho para VB.NET, .NET, C#

Ver un tutorial

OCR con resultados rápidos y precisos

El software de reconocimiento óptico de caracteres visualiza el contenido en varios estilos de fuente para obtener un OCR de texto preciso. Utiliza regiones de lectura rectangulares para mejorar la velocidad y la precisión. El multihilo multinúcleo mejora la velocidad de lectura del OCR.

Documentación de referencia de la API

Procesamiento de imágenes para el reconocimiento de escaneados imperfectos

Lo que realmente hace especial a IronOCR es su capacidad para leer documentos escaneados en mal estado. Su exclusiva biblioteca de preprocesamiento reduce el ruido de fondo, la rotación, la distorsión y la alineación sesgada, además de simplificar los colores y mejorar la resolución y el contraste. Los ajustes AutoOCR y OCR avanzado de Iron proporcionan a los desarrolladores las herramientas necesarias para obtener siempre los mejores resultados posibles.

Más información

OCR multilingüe

Paquetes de idiomas disponibles para: Alemán, árabe, chino simplificado, chino tradicional, coreano, danés, español, finés, francés, hebreo, inglés, italiano, japonés, portugués, ruso y sueco. Otros idiomas pueden ser compatibles previa petición.

Más información

Datos exportados directamente a su aplicación VB.NET

IronOCR emite el contenido como texto sin formato y datos de código de barras. Un modelo alternativo de objetos de datos estructurados permite a los desarrolladores recibir todo el contenido en formato de Encabezamientos, Párrafos, Líneas, Palabras y Caracteres estructurados para introducirlo directamente en aplicaciones .NET.

Más información
Soportes:
  • .NET Framework 4.0 y superior compatible con C#, VB, F#
  • Microsoft Visual Studio. Icono IDE de desarrollo .NET
  • Soporte del instalador NuGet para Visual Studio
  • Asistente de lenguaje JetBrains ReSharper C# compatible
  • Compatible con la plataforma de alojamiento Microsoft Azure C# .NET

Licencias y precios

Gratis licencias de desarrollo comunitario. Licencias comerciales a partir de 749 $.

Proyecto C# + VB.NET Licencia de biblioteca

Proyecto

Desarrollador C# + VB.NET Licencia de biblioteca

Desarrollador

Organización C# + VB.NET Library Licencia

Organización

Agencia de licencias de bibliotecas C# + VB.NET

Agencia

SaaS C# + VB.NET Library Licencias

SaaS

Licencia de biblioteca OEM C# + VB.NET

OEM

Ver todas las opciones de licencia  

Tutoriales de reconocimiento óptico de caracteres en VB.NET

Tutorial de Tesseract para C# | IronOCR

C# Tesseract OCR

Jim Baker es ingeniero de desarrollo de Iron para el producto OCR

Comparación entre IronOCR y Tesseract para .NET

Jim ha sido una figura destacada en el desarrollo de IronOCR. Jim diseña y construye algoritmos de procesamiento de imágenes y métodos de lectura para OCR.

Ver la comparación de Jim con Tesseract
Cómo leer texto de una imagen en .NET | Tutorial

C# OCR ASP.NET

Gemma Beckford - Ingeniera de soluciones Microsoft

Cómo leer texto de una imagen en C# .NET

Descubra cómo el equipo de Gemma utiliza IronOCR para leer texto de imágenes para su software de archivo. Gemma comparte sus propios ejemplos de código.

Ver el tutorial de Gemma de imagen a texto
Los programadores de VB utilizan IronOcr para...

Sistemas contables y financieros

  • # Recibos
  • # Informes
  • # Impresión de facturas
Añada compatibilidad con PDF a los sistemas de contabilidad y finanzas ASP.NET

Digitalización empresarial

  • # Documentación
  • # Pedidos & Etiquetado
  • # Sustitución del papel
Casos prácticos de digitalización empresarial en C#

Gestión de contenidos empresariales

  • # Producción de contenidos
  • # Gestión de documentos
  • # Distribución de contenidos
.NET CMS Soporte PDF

Aplicaciones de datos e informes

  • # Seguimiento del rendimiento
  • # Mapa de tendencias
  • # Informes
Informes PDF en C#
Únase a ellos hoy mismo
Clientes de Iron .NET

Miles de empresas, gobiernos, PYME y desarrolladores confían en los productos de software de Iron.

El equipo de Iron cuenta con más de 10 años de experiencia en el mercado de componentes de software .NET.

Medcode
Foley
Nexudus
Marval
Vireq
Equinor
ANZ
GE