Una comparación entre IronOCR y PDFTRON OCR
OCR significa "Reconocimiento Óptico de Caracteres". Este es el proceso de convertir documentos en papel o imágenes en texto legible. Existen varios métodos para hacer esto, como el escaneo o la entrada manual a través de un teclado. Esto se hace para convertir cualquier archivo escaneado y PDF a su formato original de texto. Este proceso ha demostrado ser invaluable en casos criminales donde los documentos están demasiado dañados para la transcripción manual pero pueden ser escaneados e interpretados por software OCR.
Con el avance de la tecnología y la adopción ubicua de herramientas digitales, el OCR también se ha implementado en otros campos, como la conversión de documentos en aplicaciones como Google Docs, así como en la academia y el mundo de los negocios. Hay dos tipos principales de OCR, "estático" y "dinámico". El tipo más común es el OCR estático en el que se escanea todo el documento de una vez. El OCR dinámico, por otro lado, escanea una línea a la vez y puede procesar diseños más sofisticados como datos tabulares.
Este artículo discutirá la comparación entre dos de las aplicaciones y bibliotecas de documentos más prevalentes para OCR y PDF. Estas son:
- PDFTron OCR
- IronOCR
1.0 Introducción
1.1 Introducción y características de PDFTron OCR
Para usar OCR con el SDK de PDFTron, tenemos que instalar un módulo OCR adicional. Esto ayuda al SDK a detectar texto de los documentos. Puede hacer que el texto sea seleccionable y buscable. El SDK de PDFTron admite hasta 100 idiomas. El motor OCR de PDFTron es compatible con una red neuronal LSTM de código abierto de Tesseract. PDFTron OCR admite múltiples tipos de formatos de imagen para la detección de texto. Los archivos PDF con solo imágenes raster también son aceptados para OCR, con la calidad de salida dependiendo de la imagen de entrada. Las mejores imágenes para OCR son imágenes en escala de grises con una resolución de 300 DPI.
Las características de PDFTron OCR
- Hacer que las imágenes sean buscables en documentos impresos.
- Convertir un PDF simple a un PDF buscable.
- Detectar información importante de documentos de negocios.
- Hacer más fácil el escaneo de libros.
- Detección de números de vehículos de imágenes de vehículos.
- Ayudar a usuarios con discapacidad visual.
- Se hace fácil realizar la entrada de datos en múltiples documentos desde archivos usando OCR.
- Transferir información de tarjetas de negocio a listas de datos de contacto fácilmente.
1.2 IronOCR: Introducción y características
Iron Software proporciona a los ingenieros de software IronOCR para .NET para leer contenido de texto de fotos y PDFs en aplicaciones y sitios web .NET. El software ayuda a escanear fotos en busca de texto y códigos de barras, admite numerosos idiomas en todo el mundo y da salida como texto plano o datos estructurados. La biblioteca OCR de Iron Software se puede utilizar en aplicaciones web, de consola, MVC y numerosas aplicaciones de escritorio .NET. En el caso de implementación comercial, se proporciona asistencia directa del equipo de desarrollo junto a las licencias adquiridas.
- IronOCR utiliza el motor Tesseract 5 que lee texto, códigos QR y códigos de barras, de cualquier formato PDF. Agregar OCR a aplicaciones de escritorio, web y de consola con esta biblioteca asegura una integración rápida.
- IronOCR admite 125 idiomas internacionales. También soporta idiomas y listas de palabras personalizadas.
- IronOCR puede leer más de 20 formatos de códigos de barras y códigos QR.
- Admite formatos de imagen GIF y TIFF de varias páginas.
- Corrige escaneos y imágenes de baja calidad.
- Admite multihilo. Puede ejecutar uno o más procesos a la vez.
- IronOCR puede proporcionar salida de datos estructurados a páginas, párrafos, líneas, palabras, caracteres, etc.
- IronOCR es compatible con sistemas operativos como Windows, Linux, macOS, etc.
2. Creación de un nuevo proyecto en Visual Studio
Abre Visual Studio y ubica el menú Archivo. Selecciona nuevo proyecto, luego selecciona Aplicación de consola. Para generar documentos PDF, usaremos la Aplicación de consola en este artículo.

Introduce el nombre del proyecto y selecciona la ruta de archivo en el cuadro de texto apropiado. Luego, haz clic en el botón Crear. También seleccione el marco .NET requerido.
El proyecto de Visual Studio ahora generará la estructura para la aplicación seleccionada.
La estructura del proyecto ahora será generada por Visual Studio. El archivo program.cs se abrirá si has seleccionado aplicaciones de Windows, consola y web para que puedas ingresar el código y construir/ejecutar tu aplicación.

Para el siguiente paso, necesitamos agregar la biblioteca para probar el código.
3.0 Instalación
3.1 Instalar PDFtron OCR
The PDFTron OCR installation is completed manually and can be downloaded as a zip from the given link. Descomprime y configúralo con el proyecto. La guía ayudará a ejecutar ejemplos de PDFTron usando la prueba gratuita integrada del SDK de PDFTron en una aplicación del .NET Framework usando Windows. El soporte de ingenieros de solución y el uso ilimitado de la prueba están incluidos en la prueba gratuita.
Prerrequisitos
Visual Studio: Asegúrate de que la carga de trabajo de .NET Desktop Development y de herramientas de desarrollo de .NET Framework 4.5.1+ sea parte de tu instalación. Esta guía usará Visual Studio 2017 y la Biblioteca de PDF .NET de PDFTron para Windows. Download the library using this link, .NET PDF SDK Download.
Configuración inicial
Extrae la carpeta del archivo .zip. PDFNET_BASE es usado en esta guía para seleccionar la ruta a la carpeta que extrajiste.
// Set the base path where the extracted files are located
PDFNET_BASE = "path/to/extraction/folder/PDFNetDotNet4/";// Set the base path where the extracted files are located
PDFNET_BASE = "path/to/extraction/folder/PDFNetDotNet4/";' Set the base path where the extracted files are located
PDFNET_BASE = "path/to/extraction/folder/PDFNetDotNet4/"Ejecutar las muestras
Navega a la ubicación de los contenidos extraídos. Encuentra e ingresa a la carpeta Samples (PDFNET_BASE/Samples). Esta carpeta contiene numerosos códigos de ejemplo para características soportadas por el SDK de PDFTron.
- Abre Samples_20XX.sln en Visual Studio. Elige una versión apropiada para tu instalación de Visual Studio.
- Select the sample code and set it as the Startup Project for the solution.
- Ejecuta el proyecto.
Integrar en su aplicación
Esto se llama la aplicación "Hola Mundo de PDFTron". Es fácil integrar el resto del SDK de PDFTron si puedes abrir, guardar y cerrar un documento PDF.
- En Visual Studio, crea un proyecto de aplicación de consola de .NET Framework en tu idioma preferido. Puedes encontrarlos bajo la categoría Visual C# o Visual Basic.
- Navega a la carpeta de tu proyecto. Por defecto, la ruta debería ser similar a: C:/Usuarios/Nombre_Usuario/source/repos/miAplicación
- Desde PDFNET_BASE a tu carpeta del proyecto (esta carpeta tendrá tu archivo .csproj o .vbproj), copia la carpeta Lib.
- Encuentra el Explorador de Soluciones en el lado derecho. Selecciona la opción Agregar Referencia haciendo clic derecho en Referencias. Abre el cuadro del Administrador de Referencias.
- Ubicado en la parte inferior del cuadro de diálogo, selecciona Examinar. Navega a la carpeta Lib copiada para agregar PDFNetLoader.dll a las referencias
- Además, desde la carpeta x86 agrega la versión adecuada de PDFNet.dll como otra referencia (ruta/a/tu/carpeta/del/proyecto/Lib/PDFNet/x86/PDFNet.dll). Esto asegurará que la aplicación se ejecute tanto en SO de 32 bits como de 64 bits.
- Haz clic en PDFNet.dll. Asegúrate de configurar su propiedad Copy Local en Falso.

3.2 Instalar IronOCR
La biblioteca IronOCR se puede instalar de cuatro maneras.
Estas son:
- Usando Visual Studio.
- Usando la Línea de Comandos de Visual Studio.
- Descarga directa desde el sitio web de NuGet.
- Descarga directa desde el sitio web de IronOCR.
3.2.1 Uso de Visual Studio
El software Visual Studio proporciona la opción del administrador del paquete NuGet para instalar el paquete directamente en la solución. La captura de pantalla demuestra cómo abrir el Administrador de Paquetes NuGet.

Esto proporcionará un cuadro de búsqueda para mostrar la lista de paquetes desde el sitio web de NuGet. En el administrador de paquetes, necesitamos buscar la palabra clave "IronOCR", como en la captura de pantalla a continuación:

De la imagen anterior, podemos ver la lista de los resultados de búsqueda relacionados. Para instalar el paquete en la solución, debemos seleccionar la opción requerida.
3.2.2 Uso de la línea de comandos de Visual Studio
- En Visual Studio: Ve a Herramientas-> Administrador de paquetes NuGet -> Consola del administrador de paquetes
- Introduce el siguiente fragmento de código en la pestaña de la consola del administrador de paquetes.
Install-Package IronOcr
El paquete ahora se instalará directamente en el proyecto actual, que estará listo para usar.
3.2.3 Descarga directa desde el sitio web de NuGet
Para el tercer método, podemos descargar el paquete NuGet directamente desde el sitio web
- Navega a este Enlace.
- Desde el menú del lado derecho, asegúrate de seleccionar la opción de descargar paquete.
- Haz doble clic en el paquete descargado. Se instalará automáticamente.
- Luego, vuelve a cargar la solución y comienza a usarla en el proyecto.
3.2.4 Descarga directa desde el sitio web de IronOCR
Puedes descargar directamente el último paquete desde el sitio web haciendo clic en este enlace. Sigue las instrucciones proporcionadas para agregar el paquete al proyecto una vez que se descargue el último paquete.
- Haz clic derecho en el proyecto desde la ventana de la solución.
- Selecciona Opción Referencia para buscar la ubicación de la referencia descargada.
- Luego, haz clic en OK para añadir la referencia.
Imagen OCR 4.0
IronOCR y PDFtron OCR ambos tienen tecnología OCR que convertirá imágenes en búsqueda de texto.
4.1 Uso de PDFTron
Convertir PDF a DOCX, DOC, HTML, SVG, TIFF, PNG, JPEG, XPS, EPUB, TXT y muchos otros formatos.
// Create a new PDF document
PDFDoc doc = new PDFDoc("sample.pdf");
// Convert PDF document to SVG
Convert.ToSvg(doc, "output.svg");
// Convert PDF document to XPS
Convert.ToXps("sample.pdf", "output.xps");
// Convert PDF document to multipage TIFF
Convert.TiffOutputOptions tiff_options = new Convert.TiffOutputOptions();
tiff_options.SetDPI(200);
tiff_options.SetDither(true);
tiff_options.SetMono(true);
Convert.ToTiff("sample.pdf", "output.tiff", tiff_options);
// Convert PDF to XOD
Convert.ToXod("sample.pdf", "output.xod");
// Convert PDF to HTML
Convert.ToHtml("sample.pdf", "output.html");// Create a new PDF document
PDFDoc doc = new PDFDoc("sample.pdf");
// Convert PDF document to SVG
Convert.ToSvg(doc, "output.svg");
// Convert PDF document to XPS
Convert.ToXps("sample.pdf", "output.xps");
// Convert PDF document to multipage TIFF
Convert.TiffOutputOptions tiff_options = new Convert.TiffOutputOptions();
tiff_options.SetDPI(200);
tiff_options.SetDither(true);
tiff_options.SetMono(true);
Convert.ToTiff("sample.pdf", "output.tiff", tiff_options);
// Convert PDF to XOD
Convert.ToXod("sample.pdf", "output.xod");
// Convert PDF to HTML
Convert.ToHtml("sample.pdf", "output.html");' Create a new PDF document
Dim doc As New PDFDoc("sample.pdf")
' Convert PDF document to SVG
Convert.ToSvg(doc, "output.svg")
' Convert PDF document to XPS
Convert.ToXps("sample.pdf", "output.xps")
' Convert PDF document to multipage TIFF
Dim tiff_options As New Convert.TiffOutputOptions()
tiff_options.SetDPI(200)
tiff_options.SetDither(True)
tiff_options.SetMono(True)
Convert.ToTiff("sample.pdf", "output.tiff", tiff_options)
' Convert PDF to XOD
Convert.ToXod("sample.pdf", "output.xod")
' Convert PDF to HTML
Convert.ToHtml("sample.pdf", "output.html")4.2 Uso de IronOCR
// Create an IronTesseract object
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())
{
// Add an image for OCR
Input.AddImage(@"3.png");
// Read the text from the image
var Result = Ocr.Read(Input);
// Print the text to the console
Console.WriteLine(Result.Text);
Console.ReadKey();
}// Create an IronTesseract object
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())
{
// Add an image for OCR
Input.AddImage(@"3.png");
// Read the text from the image
var Result = Ocr.Read(Input);
// Print the text to the console
Console.WriteLine(Result.Text);
Console.ReadKey();
}' Create an IronTesseract object
Dim Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.EnglishBest
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5
Using Input = New OcrInput()
' Add an image for OCR
Input.AddImage("3.png")
' Read the text from the image
Dim Result = Ocr.Read(Input)
' Print the text to the console
Console.WriteLine(Result.Text)
Console.ReadKey()
End UsingSe demostró anteriormente el proceso de convertir archivos de imagen en texto con la API de Tesseract 5. La línea de código anterior se utilizó para crear un objeto para Iron Tesseract. Además, para asegurarnos de que podemos agregar uno o más archivos de imagen, producimos un objeto OcrInput que requerirá la ruta de imagen disponible. En el objeto IronTesseract, se puede usar la función "Leer" para obtener las imágenes mediante el análisis del archivo de imagen y la extracción del resultado producido en el resultado del OCR. Puede extraer texto de fotos y convertirlo en una cadena.
Tesseract se puede utilizar para agregar imágenes de múltiples marcos utilizando el método "AddMultiFrameTiff" para este proceso. Cada fotograma en la imagen se lee y se trata como una página distinta por la Biblioteca Tesseract. Cada fotograma de la imagen se lee antes de proceder al fotograma siguiente hasta que cada fotograma haya sido escaneado con éxito. El formato de imagen TIFF es el único formato compatible en este método.

La conversión exitosa de los datos en texto editable se muestra en la imagen anterior, resultado de la precisión de IronOCR.
Archivo PDF con reconocimiento óptico de caracteres 5.0
IronOCR y PDFTron OCR convierten archivos PDF en texto editable. PDFTron OCR proporciona una lista de opciones al usuario, como guardar la página, editar la imagen, reconocer la página, etc. Además, puede proporcionar opciones de guardado como documento, texto, formato HTML, etc. IronOCR también nos permite guardar un archivo OCR convertido en HTML, texto, PDF, etc.
5.1 Uso del OCR de PDFTron
El código de ejemplo completo muestra cómo usar PDFTron OCR para conversiones directas y de alta calidad entre PDF, XPS, EMF, SVG, TIFF, PNG, JPEG y otros formatos de imagen.
// Copyright (c) 2001-2021 by PDFTron Systems Inc. All Rights Reserved.
using System;
using pdftron;
using pdftron.Common;
using pdftron.Filters;
using pdftron.SDF;
using pdftron.PDF;
// This code demonstrates conversion of documents to formats such as SVG, PDF, EMF, or XPS.
namespace ConvertTestCS
{
class Testfile
{
public string inputFile, outputFile;
public bool requiresWindowsPlatform;
public Testfile(string inFile, string outFile, bool requiresWindowsPlatform_)
{
inputFile = inFile;
outputFile = outFile;
requiresWindowsPlatform = requiresWindowsPlatform_;
}
};
class Class1
{
private static pdftron.PDFNetLoader pdfNetLoader = pdftron.PDFNetLoader.Instance();
static Class1() {}
// Relative paths to the input and output folders.
const string inputPath = "../../../../TestFiles/";
const string outputPath = "../../../../TestFiles/Output/";
static bool ConvertSpecificFormats()
{
bool err = false;
try
{
using (PDFDoc pdfdoc = new PDFDoc())
{
// Convert from XPS to PDF
Console.WriteLine("Converting from XPS");
pdftron.PDF.Convert.FromXps(pdfdoc, inputPath + "simple-xps.xps");
pdfdoc.Save(outputPath + "xps2pdf v2.pdf", SDFDoc.SaveOptions.e_remove_unused);
Console.WriteLine("Saved xps2pdf v2.pdf");
}
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
err = true;
}
// Other format conversions...
return err;
}
static Boolean ConvertToPdfFromFile()
{
System.Collections.ArrayList testfiles = new System.Collections.ArrayList();
testfiles.Add(new ConvertTestCS.Testfile("simple-word_2007.docx", "docx2pdf.pdf", false));
// Add other test files...
bool err = false;
foreach (Testfile file in testfiles)
{
try
{
using (pdftron.PDF.PDFDoc pdfdoc = new PDFDoc())
{
// Conditions and conversions...
pdftron.PDF.Convert.ToPdf(pdfdoc, inputPath + file.inputFile);
pdfdoc.Save(outputPath + file.outputFile, SDFDoc.SaveOptions.e_linearized);
Console.WriteLine("Converted file: " + file.inputFile);
Console.WriteLine("to: " + file.outputFile);
}
}
// Catch exceptions...
}
return err;
}
static void Main(string [] args)
{
PDFNet.Initialize(PDFTronLicense.Key);
bool err = false;
err = ConvertToPdfFromFile();
if (err)
{
Console.WriteLine("ConvertFile failed");
}
else
{
Console.WriteLine("ConvertFile succeeded");
}
err = ConvertSpecificFormats();
if (err)
{
Console.WriteLine("ConvertSpecificFormats failed");
}
else
{
Console.WriteLine("ConvertSpecificFormats succeeded");
}
// Finalization...
PDFNet.Terminate();
Console.WriteLine("Done.");
}
}
}// Copyright (c) 2001-2021 by PDFTron Systems Inc. All Rights Reserved.
using System;
using pdftron;
using pdftron.Common;
using pdftron.Filters;
using pdftron.SDF;
using pdftron.PDF;
// This code demonstrates conversion of documents to formats such as SVG, PDF, EMF, or XPS.
namespace ConvertTestCS
{
class Testfile
{
public string inputFile, outputFile;
public bool requiresWindowsPlatform;
public Testfile(string inFile, string outFile, bool requiresWindowsPlatform_)
{
inputFile = inFile;
outputFile = outFile;
requiresWindowsPlatform = requiresWindowsPlatform_;
}
};
class Class1
{
private static pdftron.PDFNetLoader pdfNetLoader = pdftron.PDFNetLoader.Instance();
static Class1() {}
// Relative paths to the input and output folders.
const string inputPath = "../../../../TestFiles/";
const string outputPath = "../../../../TestFiles/Output/";
static bool ConvertSpecificFormats()
{
bool err = false;
try
{
using (PDFDoc pdfdoc = new PDFDoc())
{
// Convert from XPS to PDF
Console.WriteLine("Converting from XPS");
pdftron.PDF.Convert.FromXps(pdfdoc, inputPath + "simple-xps.xps");
pdfdoc.Save(outputPath + "xps2pdf v2.pdf", SDFDoc.SaveOptions.e_remove_unused);
Console.WriteLine("Saved xps2pdf v2.pdf");
}
}
catch (PDFNetException e)
{
Console.WriteLine(e.Message);
err = true;
}
// Other format conversions...
return err;
}
static Boolean ConvertToPdfFromFile()
{
System.Collections.ArrayList testfiles = new System.Collections.ArrayList();
testfiles.Add(new ConvertTestCS.Testfile("simple-word_2007.docx", "docx2pdf.pdf", false));
// Add other test files...
bool err = false;
foreach (Testfile file in testfiles)
{
try
{
using (pdftron.PDF.PDFDoc pdfdoc = new PDFDoc())
{
// Conditions and conversions...
pdftron.PDF.Convert.ToPdf(pdfdoc, inputPath + file.inputFile);
pdfdoc.Save(outputPath + file.outputFile, SDFDoc.SaveOptions.e_linearized);
Console.WriteLine("Converted file: " + file.inputFile);
Console.WriteLine("to: " + file.outputFile);
}
}
// Catch exceptions...
}
return err;
}
static void Main(string [] args)
{
PDFNet.Initialize(PDFTronLicense.Key);
bool err = false;
err = ConvertToPdfFromFile();
if (err)
{
Console.WriteLine("ConvertFile failed");
}
else
{
Console.WriteLine("ConvertFile succeeded");
}
err = ConvertSpecificFormats();
if (err)
{
Console.WriteLine("ConvertSpecificFormats failed");
}
else
{
Console.WriteLine("ConvertSpecificFormats succeeded");
}
// Finalization...
PDFNet.Terminate();
Console.WriteLine("Done.");
}
}
}' Copyright (c) 2001-2021 by PDFTron Systems Inc. All Rights Reserved.
Imports System
Imports pdftron
Imports pdftron.Common
Imports pdftron.Filters
Imports pdftron.SDF
Imports pdftron.PDF
' This code demonstrates conversion of documents to formats such as SVG, PDF, EMF, or XPS.
Namespace ConvertTestCS
Friend Class Testfile
Public inputFile, outputFile As String
Public requiresWindowsPlatform As Boolean
Public Sub New(ByVal inFile As String, ByVal outFile As String, ByVal requiresWindowsPlatform_ As Boolean)
inputFile = inFile
outputFile = outFile
requiresWindowsPlatform = requiresWindowsPlatform_
End Sub
End Class
Friend Class Class1
Private Shared pdfNetLoader As pdftron.PDFNetLoader = pdftron.PDFNetLoader.Instance()
Shared Sub New()
End Sub
' Relative paths to the input and output folders.
Private Const inputPath As String = "../../../../TestFiles/"
Private Const outputPath As String = "../../../../TestFiles/Output/"
Private Shared Function ConvertSpecificFormats() As Boolean
Dim err As Boolean = False
Try
Using pdfdoc As New PDFDoc()
' Convert from XPS to PDF
Console.WriteLine("Converting from XPS")
pdftron.PDF.Convert.FromXps(pdfdoc, inputPath & "simple-xps.xps")
pdfdoc.Save(outputPath & "xps2pdf v2.pdf", SDFDoc.SaveOptions.e_remove_unused)
Console.WriteLine("Saved xps2pdf v2.pdf")
End Using
Catch e As PDFNetException
Console.WriteLine(e.Message)
err = True
End Try
' Other format conversions...
Return err
End Function
Private Shared Function ConvertToPdfFromFile() As Boolean
Dim testfiles As New System.Collections.ArrayList()
testfiles.Add(New ConvertTestCS.Testfile("simple-word_2007.docx", "docx2pdf.pdf", False))
' Add other test files...
Dim err As Boolean = False
For Each file As Testfile In testfiles
Try
Using pdfdoc As pdftron.PDF.PDFDoc = New PDFDoc()
' Conditions and conversions...
pdftron.PDF.Convert.ToPdf(pdfdoc, inputPath & file.inputFile)
pdfdoc.Save(outputPath & file.outputFile, SDFDoc.SaveOptions.e_linearized)
Console.WriteLine("Converted file: " & file.inputFile)
Console.WriteLine("to: " & file.outputFile)
End Using
End Try
' Catch exceptions...
Next file
Return err
End Function
Shared Sub Main(ByVal args() As String)
PDFNet.Initialize(PDFTronLicense.Key)
Dim err As Boolean = False
err = ConvertToPdfFromFile()
If err Then
Console.WriteLine("ConvertFile failed")
Else
Console.WriteLine("ConvertFile succeeded")
End If
err = ConvertSpecificFormats()
If err Then
Console.WriteLine("ConvertSpecificFormats failed")
Else
Console.WriteLine("ConvertSpecificFormats succeeded")
End If
' Finalization...
PDFNet.Terminate()
Console.WriteLine("Done.")
End Sub
End Class
End Namespace5.2 Uso de IronOCR
La gestión de archivos PDF se puede completar utilizando la función OCRInput. Cada página en un documento será leída por la clase Iron Tesseract. El texto luego será extraído de las páginas. Una segunda función llamada "AddPDF" nos permitirá abrir documentos protegidos y asegura que podamos agregar PDFs a nuestra lista de documentos (contraseña si está protegido). Para abrir un documento PDF protegido por contraseña, utiliza el siguiente fragmento de código:
var Ocr = new IronTesseract(); // Configure nothing
using (var Input = new OcrInput())
{
// Add PDF with password
Input.AddPdf("example.pdf", "password");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}var Ocr = new IronTesseract(); // Configure nothing
using (var Input = new OcrInput())
{
// Add PDF with password
Input.AddPdf("example.pdf", "password");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}Dim Ocr = New IronTesseract() ' Configure nothing
Using Input = New OcrInput()
' Add PDF with password
Input.AddPdf("example.pdf", "password")
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
End UsingLa lectura y extracción de contenidos de una página en un archivo PDF se puede lograr utilizando la función "Addpdfpage". Solo especifica el número de página exacto del cual queremos extraer texto. "AddPdfPage" te permitirá extraer texto de múltiples páginas que especifiques. IEnumerable
IEnumerable<int> numbers = new List<int> {2,8,10};
// Create an IronTesseract object
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
// Single page
Input.AddPdfPage("example.pdf",10);
// Multiple pages
Input.AddPdfPages("example.pdf", numbers);
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
// Save result to a text file
Result.SaveAsTextFile("ocrtext.txt");
}IEnumerable<int> numbers = new List<int> {2,8,10};
// Create an IronTesseract object
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
// Single page
Input.AddPdfPage("example.pdf",10);
// Multiple pages
Input.AddPdfPages("example.pdf", numbers);
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
// Save result to a text file
Result.SaveAsTextFile("ocrtext.txt");
}Dim numbers As IEnumerable(Of Integer) = New List(Of Integer) From {2, 8, 10}
' Create an IronTesseract object
Dim Ocr = New IronTesseract()
Using Input = New OcrInput()
' Single page
Input.AddPdfPage("example.pdf",10)
' Multiple pages
Input.AddPdfPages("example.pdf", numbers)
Dim Result = Ocr.Read(Input)
Console.WriteLine(Result.Text)
' Save result to a text file
Result.SaveAsTextFile("ocrtext.txt")
End UsingUsa la función SaveAsTextFile para almacenar directamente el resultado en un formato de archivo de texto para que puedas descargar directamente el archivo a la ruta del directorio de salida. Para guardar el archivo en formato HTML, usa SaveAsHocrFile.
6.1 Uso de PDFTron
Podemos usar el SDK de PDFTron para extraer imágenes de archivos PDF, junto con su información de posicionamiento y DPI. En lugar de convertir imágenes PDF a un bitmap, también puedes extraer datos de imagen sin comprimir/comprimidos directamente usando elements.GetImageData() (descrito en el código de ejemplo de Extracción de Datos de PDF). Aprende más sobre nuestra Biblioteca PDF de C# y la Biblioteca de Análisis y Extracción de Contenidos de PDF.
6.2 Uso de IronOCR
IronOCR tiene un impresionante número de características que te permitirá leer códigos QR y códigos de barras directamente de documentos escaneados. El siguiente fragmento de código demuestra cómo puedes escanear el código de barras de una imagen o documento dado.
// Create an IronTesseract object
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.ReadBarCodes = true;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())
{
// Add an image with a barcode
Input.AddImage("barcode.gif");
// Read the image
var Result = Ocr.Read(Input);
// Iterate over all barcodes found and display their values
foreach (var Barcode in Result.Barcodes)
{
Console.WriteLine(Barcode.Value);
}
}// Create an IronTesseract object
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.ReadBarCodes = true;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
using (var Input = new OcrInput())
{
// Add an image with a barcode
Input.AddImage("barcode.gif");
// Read the image
var Result = Ocr.Read(Input);
// Iterate over all barcodes found and display their values
foreach (var Barcode in Result.Barcodes)
{
Console.WriteLine(Barcode.Value);
}
}' Create an IronTesseract object
Dim Ocr = New IronTesseract()
Ocr.Language = OcrLanguage.EnglishBest
Ocr.Configuration.ReadBarCodes = True
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5
Using Input = New OcrInput()
' Add an image with a barcode
Input.AddImage("barcode.gif")
' Read the image
Dim Result = Ocr.Read(Input)
' Iterate over all barcodes found and display their values
For Each Barcode In Result.Barcodes
Console.WriteLine(Barcode.Value)
Next Barcode
End UsingEl código anterior ayuda a leer el código de barras de una imagen o documento PDF dado. Se pueden leer numerosos códigos de barras al mismo tiempo en una sola imagen o página. IronOCR tiene un método distintivo que leerá el código de barras, Ocr.Configuration.ReadBarCodes.
Los datos se almacenan en un objeto llamado OCRResult después de escanear la entrada. La propiedad en OCRResult se llama Barcodes y tendrá una lista de todos los datos de códigos de barras disponibles. Podemos obtener cada dato individual relacionado con los detalles de los códigos de barras utilizando un bucle foreach. Dos operaciones se completan en un solo proceso: el escaneo y la lectura del valor del código de barras.
El soporte para opciones de hilos también está disponible, y se pueden completar múltiples procesos OCR al mismo tiempo. Además, IronOCR puede reconocer un área precisa de una región específica.
// Create an IronTesseract object
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
// Define the content area to be scanned
var ContentArea = new System.Drawing.Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
// Add image specifying the content area
Input.Add("document.png", ContentArea);
// Perform OCR operation
var Result = Ocr.Read(Input);
// Print the text
Console.WriteLine(Result.Text);
}// Create an IronTesseract object
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
// Define the content area to be scanned
var ContentArea = new System.Drawing.Rectangle() { X = 215, Y = 1250, Height = 280, Width = 1335 };
// Add image specifying the content area
Input.Add("document.png", ContentArea);
// Perform OCR operation
var Result = Ocr.Read(Input);
// Print the text
Console.WriteLine(Result.Text);
}' Create an IronTesseract object
Dim Ocr = New IronTesseract()
Using Input = New OcrInput()
' Define the content area to be scanned
Dim ContentArea = New System.Drawing.Rectangle() With {
.X = 215,
.Y = 1250,
.Height = 280,
.Width = 1335
}
' Add image specifying the content area
Input.Add("document.png", ContentArea)
' Perform OCR operation
Dim Result = Ocr.Read(Input)
' Print the text
Console.WriteLine(Result.Text)
End UsingEl código anterior demuestra cómo realizar OCR en una región distinta. Solo se requiere especificar la región rectangular en el PDF/imagen, ya que el motor Tesseract de IronOCR ayudará a reconocer el texto.
Modelos de licencia y precios de IronOCR y PDFtron OCR
Modelos de licencia y precios de IronOCR
Garantía de Devolución de Dinero de 30 Días: Una vez que se compra una licencia, obtendrás una garantía de devolución de dinero de 30 días. Dentro de los 30 días, si deseas devolver el producto, recibirás tu dinero.
Integración Fácil: La integración de IronOCR con cualquier proyecto y entorno es tan fácil que se puede lograr en una sola línea de código simplemente agregándolo como un paquete NuGet. Por otro lado, otra forma de integrar el entorno es descargarlo directamente de la web.
Licencia Perpetua: Cada licencia comprada no requiere renovación.
Soporte y Actualizaciones de Producto Gratuitos: Cada licencia tendrá soporte directamente del grupo detrás del producto y vendrá con un año de actualizaciones de producto gratis. La compra de extensiones está disponible en cualquier momento.
Licencias Inmediatas: Una vez recibido el pago, se enviarán inmediatamente las claves de licencia registradas.
Todas las licencias son perpetuas y se aplican a desarrollo, staging y producción.
La licencia Lite
- 1 desarrollador
- 1 ubicación
- 1 proyecto
- Licencia perpetua
Este paquete permite a un único desarrollador de software en una organización utilizar Iron Software en una ubicación. Iron Software puede ser utilizado en una única aplicación de intranet, aplicación web, o programa de software de escritorio. Está prohibido compartir licencias fuera de una organización o una relación de agencia/cliente, ya que son intransferibles. Este tipo de licencia, como todos los demás tipos de licencia, excluye expresamente todos los derechos no expresamente otorgados bajo el Acuerdo sin redistribución OEM y utilizando el Iron Software como SaaS sin comprar cobertura adicional.
Precios: Comienza desde $799 por año.
La Licencia Profesional
- 10 desarrolladores
- 10 ubicaciones
- 10 proyectos
- Licencia perpetua
Esta licencia permite a un número predeterminado de desarrolladores de software en una organización utilizar Iron Software en numerosas ubicaciones, con un máximo de diez. Iron Software se puede usar en tantos sitios web, aplicaciones de intranet o aplicaciones de software de escritorio como desees. Las licencias son intransferibles y no se pueden compartir fuera de una organización o una relación agencia/cliente. Este tipo de licencia, como todos los demás tipos de licencias, excluye expresamente todos los derechos no otorgados expresamente bajo el Acuerdo, incluida la redistribución OEM y el uso del Software de Iron como SaaS sin comprar cobertura adicional. Esta licencia puede integrarse con un único proyecto hasta un máximo de 10.
Precio: Comienza desde $999 al año.
La licencia ilimitada
- Desarrolladores ilimitados
- Ubicaciones ilimitadas
- Proyectos ilimitados
- Licencia perpetua
Esta licencia permite a un número ilimitado de desarrolladores de software en una organización utilizar Iron Software en un número ilimitado de ubicaciones. Iron Software puede utilizarse en tantas aplicaciones de intranet, aplicaciones de software de escritorio, o sitios web como desees. Las licencias son intransferibles, y no pueden compartirse fuera de una organización o una relación de agencia/cliente. Este tipo de licencia, como todos los demás tipos de licencia, excluye expresamente todos los derechos no otorgados bajo el Acuerdo, incluida la redistribución OEM y utilizando el Iron Software como SaaS sin comprar cobertura adicional.
Precios: Comienza desde $4,799 por año.
Redistribución Sin Regalías — Esto te permite distribuir Iron Software como parte de varios productos comerciales empaquetados de manera diferente (sin tener que pagar regalías) basado en el número de proyectos cubiertos por la licencia base. Esto permitirá el despliegue de Iron Software dentro de servicios de software SaaS, que se basa en el número de proyectos cubiertos por la licencia base.
Precio: Comienza desde $1,599 al año.

Modelos de licencia y precios de PDFTron
Paquetes PDFTron (licencias personalizadas)
- Los precios de licencias personalizadas varían; solicita una cotización según tu presupuesto.
- Despliega la poderosa tecnología de visualización y edición de documentos de PDFTron para renderizar y procesar documentos en plataformas web, móviles y de escritorio
- Listo para la integración, redistribución OEM y organizaciones con grandes volúmenes de documentos o requisitos únicos
- Precios multidominio y descuentos favorables por varios años
- Operaciones offline y en entorno aislado soportadas
- Términos contractuales personalizados y comprensivos
- Servicios de consultoría y formación
Las licencias personalizadas de PDFTron están adaptadas para satisfacer tus requisitos de aplicación y negocio. Los precios dependen del alcance de tus características.

La licencia Lite de IronOCR es un paquete indefinido que incluye un desarrollador con un año de soporte, y cuesta alrededor de $799. La licencia profesional de IronOCR que incluye paquetes de 10 desarrolladores y un año de soporte cuesta $999, mientras que nuevamente, los paquetes de PDFTron son indefinidos. Para comprar un paquete, debes contactar al centro de soporte para obtener una cotización.
Los paquetes Lite y Professional de IronOCR incluyen servicio OEM o SaaS con una opción de soporte de 5 años. La versión Lite incluye un paquete de un desarrollador con soporte de 5 años y servicio Saas y OEM cuesta $2,897 con una opción de soporte personalizada. La versión Professional de IronOCR incluye un paquete de 10 desarrolladores con soporte de 5 años, Saas, y servicio OEM y cuesta $3,397. El paquete de 10 desarrolladores de PDFTron con un año de soporte, Saas, y servicio OEM no tiene un precio definido.
7.0 Conclusión
IronOCR en el contexto del .NET Framework proporciona Tesseract que es fácil de usar con el soporte de fotos y documentos PDF logrado de múltiples maneras. También proporciona varias configuraciones para mejorar el rendimiento de Tesseract OCR. Se admiten numerosos idiomas, con la capacidad de tener varios idiomas en una sola operación. Visita su sitio web para obtener más información sobre Tesseract OCR.
PDFTron es una aplicación de software que utiliza diferentes motores para reconocer imágenes y documentos PDF. También proporciona varias configuraciones para mejorar el rendimiento del proceso OCR y la opción de seleccionar múltiples idiomas. PDFTron tiene limitaciones en el uso de conversiones de páginas. También tiene varios precios para diferentes sistemas operativos.
IronOCR es un producto de software competitivo y puede ofrecer una mayor precisión que las marcas competidoras. Productos similares han fallado a veces en reconocer imágenes de baja calidad, resultando en caracteres desconocidos. Por otro lado, IronOCR no solo proporciona resultados precisos, sino que nos permite reconocer datos de código de barras y leer el valor de los códigos de barras de las imágenes.
Los paquetes de IronOCR proporcionan licencias y soporte competitivo a un solo precio para todas las plataformas. En comparación, los productos OCR de PDFTron son todos exclusivamente seleccionados y tienden a ser más caros. Los precios varían entre ambos productos, con IronOCR comenzando a un precio de $799, mientras que debido a la selección personalizada, el precio inicial de PDFTron es indefinido. En conclusión, IronOCR proporciona un mayor número de características por un precio más bajo.
Entonces, ¿qué estás esperando? La prueba gratuita está abierta a todos. ¡Obtén la Licencia aquí y comienza de inmediato!
Preguntas Frecuentes
¿Qué es el Reconocimiento Óptico de Caracteres (OCR) y su importancia?
El Reconocimiento Óptico de Caracteres (OCR) es una tecnología utilizada para convertir documentos en papel o imágenes en texto legible. Es esencial para aplicaciones en los campos legal, empresarial y académico, permitiendo la conversión de archivos escaneados y PDFs a su formato de texto original.
¿Cómo puedo integrar la funcionalidad de OCR en una aplicación de C#?
Puede integrar la funcionalidad de OCR en una aplicación de C# utilizando IronOCR, que ofrece una integración perfecta con aplicaciones .NET y admite múltiples idiomas y formatos de códigos de barras.
¿Cuáles son los pasos de instalación para IronOCR?
IronOCR se puede instalar a través de Visual Studio usando el Administrador de Paquetes NuGet. También puede utilizar la línea de comandos de Visual Studio, descargar directamente desde el sitio web de NuGet, o obtenerlo desde el sitio web de IronOCR.
¿Cuáles son las principales diferencias entre PDFTron OCR e IronOCR?
Mientras que PDFTron OCR requiere un módulo adicional separado y ofrece versatilidad en formatos de documentos, IronOCR proporciona una integración superior con .NET, admite más idiomas y ofrece precios competitivos con un enfoque en la facilidad de uso.
¿Cómo maneja IronOCR los escaneos de baja calidad?
IronOCR está diseñado para corregir escaneos de baja calidad, proporcionando reconocimiento de texto preciso y salida de datos estructurada incluso cuando las imágenes originales no son de alta calidad.
¿Cuáles son las capacidades de soporte de idiomas de IronOCR?
IronOCR admite 125 idiomas, lo que lo convierte en una opción versátil para aplicaciones globales que requieren funcionalidad OCR.
¿Puede IronOCR usarse para el reconocimiento de códigos de barras?
Sí, IronOCR admite la lectura no solo de texto, sino también de códigos QR y códigos de barras de PDFs e imágenes, mejorando su utilidad para diversas aplicaciones.
¿Cuáles son algunos casos de uso comunes para la tecnología OCR?
La tecnología OCR se utiliza comúnmente para convertir documentos legales escaneados, automatizar la entrada de datos, hacer que los PDFs sean buscables y ayudar a usuarios con discapacidad visual convirtiendo texto a audio.
¿Cómo se compara el precio de IronOCR con PDFTron OCR?
IronOCR ofrece licencias perpetuas directas con opciones para diferentes necesidades de usuario, mientras que el precio de PDFTron OCR es personalizable según los requisitos específicos de la aplicación, lo que a menudo resulta en costos más altos.
¿Cuál es el proceso para convertir imágenes a texto usando IronOCR?
Usando IronOCR, puede convertir imágenes a texto utilizando sus capacidades de OCR dentro de una aplicación .NET, aprovechando su soporte para múltiples formatos de imagen e idiomas.






