Saltar al pie de página
COMPARAR CON OTROS COMPONENTES

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.

Pdftron Ocr Alternatives 1 related to 2. Creación de un nuevo proyecto en Visual Studio

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.

Pdftron Ocr Alternatives 2 related to 2. Creación de un nuevo proyecto en Visual Studio

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/"
$vbLabelText   $csharpLabel

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.

  1. Abre Samples_20XX.sln en Visual Studio. Elige una versión apropiada para tu instalación de Visual Studio.
  2. Select the sample code and set it as the Startup Project for the solution.
  3. 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.

  1. 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.
  2. Navega a la carpeta de tu proyecto. Por defecto, la ruta debería ser similar a: C:/Usuarios/Nombre_Usuario/source/repos/miAplicación
  3. Desde PDFNET_BASE a tu carpeta del proyecto (esta carpeta tendrá tu archivo .csproj o .vbproj), copia la carpeta Lib.
  4. 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.
  5. 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
  6. 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.
  7. Haz clic en PDFNet.dll. Asegúrate de configurar su propiedad Copy Local en Falso.
Pdftron Ocr Alternatives 3 related to Integrar en su aplicación

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.

Pdftron Ocr Alternatives 4 related to 3.2.1 Uso de Visual Studio

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:

Pdftron Ocr Alternatives 5 related to 3.2.1 Uso de Visual Studio

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")
$vbLabelText   $csharpLabel

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 Using
$vbLabelText   $csharpLabel

Se 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.

Pdftron Ocr Alternatives 6 related to 4.2 Uso de IronOCR

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 Namespace
$vbLabelText   $csharpLabel

5.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 Using
$vbLabelText   $csharpLabel

La 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 te permitirá especificar eficientemente numerosas páginas. También debes incluir la ubicación y la extensión del archivo. El siguiente fragmento de código lo demuestra:

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 Using
$vbLabelText   $csharpLabel

Usa 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 Using
$vbLabelText   $csharpLabel

El 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 Using
$vbLabelText   $csharpLabel

El 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.

Pdftron Ocr Alternatives 7 related to La licencia ilimitada

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.

Pdftron Ocr Alternatives 8 related to Paquetes PDFTron (licencias personalizadas)

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!

Por favor notaPDFTron OCR es una marca registrada de su respectivo propietario. Este sitio no está afiliado, respaldado ni patrocinado por PDFTron OCR. Todos los nombres de producto, logotipos y marcas son propiedad de sus respectivos dueños. Las comparaciones son sólo para fines informativos y reflejan información disponible públicamente al momento de escribir.

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.

Kannaopat Udonpant
Ingeniero de Software
Antes de convertirse en Ingeniero de Software, Kannapat completó un doctorado en Recursos Ambientales de la Universidad de Hokkaido en Japón. Mientras perseguía su grado, Kannapat también se convirtió en miembro del Laboratorio de Robótica de Vehículos, que es parte del Departamento de Ingeniería ...
Leer más