COMPARACIóN DE PRODUCTOS

Cómo leer documentos PDF en C# con iTextSharp:

Actualizado 3 de abril, 2024
Compartir:

En la era digital actual, Formato de documento portátil (PDF) se han convertido en un estándar para el intercambio de documentos debido a su naturaleza independiente de la plataforma y a su formato coherente. La biblioteca iTextSharp surge como una potente biblioteca para interactuar sin problemas con PDF para desarrolladores que trabajan con C#. En este artículo, vamos a aprender el proceso de lectura de archivos PDF utilizando iTextSharp en C#, explorando los pasos esenciales y proporcionando una guía completa para ayudarle a liberar el potencial de esta versátil biblioteca.

Cómo leer documentos PDF en C# usando iTextSharp

  1. Abrir o crear un Visual Studio Proyecto.
  2. Instale la biblioteca iTextSharp.
  3. Añada el espacio de nombres necesario.
  4. Seleccione el archivo PDF que desea leer.
  5. Crear una instancia de un lector de PDF.
  6. Crear una instancia de un documento PDF.
  7. Recorrer cada página del documento para extraer texto.
  8. Imprima el texto extraído en la consola.

¿Qué es itextSharp?

iText 7, antes conocida como iTextSharp, es una potente y versátil biblioteca Java y .NET para crear, manipular y extraer contenido de documentos PDF. Ofrece un amplio conjunto de funciones, como manejo de texto e imágenes, cumplimentación de formularios, firmas digitales y marcas de agua. Ya se trate de generar facturas, informes o formularios interactivos, iText 7 permite a los desarrolladores trabajar con PDF de forma eficaz.

Lectura de archivos PDF

Veamos algunos ejemplos de Lectura de Archivos PDF en C#. Para empezar, tendrás que añadir la biblioteca iTextSharp a tu proyecto

Instalar la biblioteca PDF iTextSharp

Abra su proyecto C# con Visual Studio. En el menú superior, ve a "Ver" y luego selecciona "Consola del Gestor de Paquetes". Esto abrirá la Consola del Gestor de Paquetes en la parte inferior de la ventana de Visual Studio.

En la consola del gestor de paquetes, asegúrese de que el menú desplegable "Proyecto predeterminado" está configurado en el proyecto en el que desea instalar el paquete iTextSharp.

Ejecute el siguiente comando para instalar la biblioteca iTextSharp:

Install-Package itext7

Este comando obtiene la última versión de iTextSharp del repositorio de paquetes NuGet y la instala en su proyecto. Espere a que finalice el proceso de instalación. La consola del gestor de paquetes mostrará información sobre el progreso de la instalación.

Cómo leer documentos PDF en C # con iTextSharp:: Figura 1 - Instalar iTextSharp utilizando la consola del gestor de paquetes NuGet en Visual Studio y añadiendo el siguiente comando: "Install-package itext7".

Lectura de documentos PDF con el lector de PDF iTextSharp

Utilizaré el siguiente documento PDF como entrada para este ejemplo.

Cómo leer documentos PDF en C# usando iTextSharp:: Figura 2 - Documento PDF original

Antes de empezar, añada el siguiente espacio de nombres:

using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser;
using System.Text;
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser;
using System.Text;
Imports iText.Kernel.Pdf
Imports iText.Kernel.Pdf.Canvas.Parser
Imports System.Text
VB   C#

El siguiente código leerá el archivo PDF anterior, extraerá el contenido e imprimirá el contenido extraído en la consola.

public static void Main(string [] args)
{
    StringBuilder text = new StringBuilder();
    string fileName = @"D:/What_is_pdf.pdf";
    if (File.Exists(fileName))
    {
        using (PdfReader pdfReader = new PdfReader(fileName))
        {
            using (PdfDocument pdfDocument = new PdfDocument(pdfReader))
            {
                for (int page = 1; page <= pdfDocument.GetNumberOfPages(); page++)
                {
                    string currentText = PdfTextExtractor.GetTextFromPage(pdfDocument.GetPage(page)); 
                    currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));
                    text.Append(currentText);
                }
            }
        }
    }
    Console.WriteLine(text.ToString());
}
public static void Main(string [] args)
{
    StringBuilder text = new StringBuilder();
    string fileName = @"D:/What_is_pdf.pdf";
    if (File.Exists(fileName))
    {
        using (PdfReader pdfReader = new PdfReader(fileName))
        {
            using (PdfDocument pdfDocument = new PdfDocument(pdfReader))
            {
                for (int page = 1; page <= pdfDocument.GetNumberOfPages(); page++)
                {
                    string currentText = PdfTextExtractor.GetTextFromPage(pdfDocument.GetPage(page)); 
                    currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));
                    text.Append(currentText);
                }
            }
        }
    }
    Console.WriteLine(text.ToString());
}
Public Shared Sub Main(ByVal args() As String)
	Dim text As New StringBuilder()
	Dim fileName As String = "D:/What_is_pdf.pdf"
	If File.Exists(fileName) Then
		Using pdfReader As New PdfReader(fileName)
			Using pdfDocument As New PdfDocument(pdfReader)
				Dim page As Integer = 1
				Do While page <= pdfDocument.GetNumberOfPages()
					Dim currentText As String = PdfTextExtractor.GetTextFromPage(pdfDocument.GetPage(page))
					currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)))
					text.Append(currentText)
					page += 1
				Loop
			End Using
		End Using
	End If
	Console.WriteLine(text.ToString())
End Sub
VB   C#

El código fuente anterior lee un archivo PDF, extrae el texto de cada página, lo convierte a UTF-8 y, a continuación, imprime todo el contenido del texto en la consola. Es un ejemplo básico de cómo extraer texto de un archivo PDF utilizando la biblioteca iTextSharp en C#.

Código Explicación

1. Ruta de archivo e inicialización

El código comienza declarando un StringBuilder llamado text para acumular el texto extraído del PDF. También define una variable de cadena fileName con la ruta de la ubicación del documento. En este caso, el archivo PDF se encuentra en "D:/Que_es_pdf.pdf".

2. Comprobación de la existencia de archivos

El si (Archivo.existe(fileName))La condición comprueba si el archivo especificado existe. Si el fichero existe, se ejecuta el bloque de código siguiente.

3. Procesamiento de documentos PDF

Dentro del bloque if, abre el archivo PDF utilizando un objeto PdfReader. A continuación, crea una instancia de archivo PdfDocument utilizando el PdfReader. El bucle for recorre cada página del documento PDF.

4. Extracción de texto de un archivo PDF

Para cada página PDF, extrae el contenido del texto utilizando la clase PdfTextExtractor's GetTextFromPage(pdfDocument.GetPage(página)) método. El texto extraído se codifica inicialmente en la codificación por defecto.

A continuación, convierte el texto de la codificación por defecto a UTF-8 utilizando Encoding.UTF8.GetString.(ASCIIEncoding.Convert(Encoding.Default,Encoding.UTF8,Encoding.Default.GetBytes(currentText))). El texto convertido se añade a la cadena de texto.

5. Visualización del texto acumulado

Finalmente, imprime el texto acumulado utilizando el comando Console.WriteLine() método.

Salida

El texto extraído del PDF es el siguiente:

Cómo leer documentos PDF en C# usando iTextSharp:: Figura 3 - Salida de la consola: Extrayendo el texto del documento PDF "What_is_pdf.pdf" usando iTextSharp y mostrándolo como texto plano en la consola.

De este modo, podemos leer el contenido del archivo PDF. Este enfoque es complejo, y menos eficiente ya que se crean múltiples instancias. Exploremos un método alternativo más fácil de usar y muy eficaz.

Introducción a IronPDF

IronPDF es una biblioteca de C# versátil y eficaz diseñada para simplificar y mejorar el uso de creación, manipulacióny renderización de documentos PDF en aplicaciones .NET. IronPDF permite a los desarrolladores integrar a la perfección funcionalidades relacionadas con PDF en sus proyectos, centrándose en la facilidad de uso y la riqueza de funciones. La biblioteca admite una amplia gama de operaciones con PDF, incluida la creación de documentos PDF desde cero, la conversión de Contenido HTML a PDF y el extracción de texto e imágenes de archivos PDF existentes. La intuitiva API de IronPDF proporciona a los desarrolladores una experiencia fácil de usar, permitiéndoles generar PDF dinámicos e interactivos sin esfuerzo. Ya se trate de añadir marcas de agua, anotaciones o cifrar documentos, IronPDF permite a los desarrolladores adaptar los PDF a sus requisitos específicos. Como solución fiable, IronPDF resulta fundamental en aplicaciones que van desde la generación de informes y la gestión de documentos hasta el desarrollo web, ya que ofrece un completo conjunto de herramientas para agilizar las tareas relacionadas con PDF en el entorno .NET.

Instalar la biblioteca IronPDF

Uso de la consola del gestor de paquetes en Visual Studio

Descargue IronPDF en su proyecto utilizando la consola del gestor de paquetes NuGet con el siguiente comando.

Install-Package IronPdf

Este comando descargará e instalará el Paquete NuGet IronPDF junto con sus dependencias, en su proyecto.

Cómo leer documentos PDF en C # con iTextSharp:: Figura 4 - Instalar la biblioteca IronPDF utilizando la consola NuGet Package Manager, introduzca el siguiente comando: "Install-package IronPDF"

Uso de NuGet Manage Packages para la solución

En la pestaña Examinar de NuGet, busque la biblioteca "IronPDF" y haga clic en Instalar.

Cómo leer documentos PDF en C # con iTextSharp:: Figura 5 - Instale IronPDF utilizando el Gestor de paquetes NuGet para soluciones buscando "IronPDF" en la barra de búsqueda del Gestor de paquetes NuGet, a continuación, seleccione el proyecto y haga clic en el botón Instalar.

Lectura de un archivo PDF con IronPDF

Ahora, vamos a leer el mismo archivo PDF utilizando IronPDF. El siguiente código extraerá texto del documento PDF de entrada.

using IronPdf;
public static void Main(string [] args)
{
    var pdfDocument = PdfDocument.FromFile(@"D:/What_is_pdf.pdf");
     string text = pdfDocument.ExtractAllText();
    Console.WriteLine(text);
}
using IronPdf;
public static void Main(string [] args)
{
    var pdfDocument = PdfDocument.FromFile(@"D:/What_is_pdf.pdf");
     string text = pdfDocument.ExtractAllText();
    Console.WriteLine(text);
}
Imports IronPdf
Public Shared Sub Main(ByVal args() As String)
	Dim pdfDocument = PdfDocument.FromFile("D:/What_is_pdf.pdf")
	 Dim text As String = pdfDocument.ExtractAllText()
	Console.WriteLine(text)
End Sub
VB   C#

El código anterior lee un archivo PDF llamado "What_is_pdf.pdf", extrae todo el contenido de texto del mismo y muestra el texto extraído en la consola

Código Explicación

1. Carga del documento PDF

El código comienza cargando un documento PDF desde un archivo llamado "What_\is_pdf.pdf". Utiliza el método PdfDocument.FromFile() para crear un objeto PdfDocument a partir del archivo especificado.

2. Extracción de todo el texto

A continuación, extrae todo el contenido de texto del documento PDF cargado. El pdfDocument.ExtractAllText() Este método devuelve el texto completo del PDF como una única cadena.

3. Visualización del texto extraído

Por último, el texto extraído se almacena en la variable texto. El código imprime el texto extraído en la consola utilizando Console.WriteLine(texto) método.

Salida

Cómo leer documentos PDF en C# usando iTextSharp:: Figura 6 - Salida de la consola: Usando IronPDF para extraer el texto del documento PDF "What_is_pdf.pdf" y mostrarlo como texto plano en la consola.

IronPDF también permite extraer texto de un archivo PDF, página por página.

Lea el archivo PDF, Página por Página

El siguiente código leerá un documento PDF, página por página utilizando IronPDF.

using IronPdf;
 public static void Main(string [] args)
 {
     StringBuilder sb = new StringBuilder();
     using PdfDocument pdf = PdfDocument.FromFile(@"D:/What_is_pdf.pdf");
     for (int index = 0; index < pdf.PageCount; index++)
     {
         sb.Append (pdf.ExtractTextFromPage(index));
     }
     Console.WriteLine(sb.ToString());
 }
using IronPdf;
 public static void Main(string [] args)
 {
     StringBuilder sb = new StringBuilder();
     using PdfDocument pdf = PdfDocument.FromFile(@"D:/What_is_pdf.pdf");
     for (int index = 0; index < pdf.PageCount; index++)
     {
         sb.Append (pdf.ExtractTextFromPage(index));
     }
     Console.WriteLine(sb.ToString());
 }
Imports IronPdf
 Public Shared Sub Main(ByVal args() As String)
	 Dim sb As New StringBuilder()
	 Using pdf As PdfDocument = PdfDocument.FromFile("D:/What_is_pdf.pdf")
		 For index As Integer = 0 To pdf.PageCount - 1
			 sb.Append(pdf.ExtractTextFromPage(index))
		 Next index
		 Console.WriteLine(sb.ToString())
	 End Using
 End Sub
VB   C#

El código anterior lee un archivo PDF llamado "What_is_pdf.pdf", extrae el contenido de texto de cada página e imprime el texto combinado en la consola.

Código Explicación

1. Inicialización y carga del PDF

Se crea un StringBuilder llamado sb para acumular el texto extraído del PDF. La declaración de uso garantiza la correcta eliminación de los recursos. Un objeto PdfDocument llamado PDF se crea cargando un archivo PDF desde la ruta "D:/Que_es_pdf.pdf" utilizando el método PdfDocument.FromFile.

2. Extracción de texto de páginas

El bucle for recorre cada página del documento PDF cargado. Para cada página (indexado por índice)extrae el contenido del texto utilizando pdf.ExtractTextFromPage(índice). El texto extraído se añade al StringBuilder utilizando sb.Append().

3. Visualización del texto acumulado

Por último, el texto acumulado se convierte en una sola cadena mediante sb.ToString(). Todo el texto extraído se imprime en la consola utilizando Console.WriteLine() método.

Conclusión

En conclusión, trabajar con archivos PDF en C# implica comprender elementos esenciales como una matriz de bytes, un diccionario de información del documento, una tabla de referencias cruzadas, una nueva instancia de archivo y un byte estático. El primer código con iTextSharp muestra un enfoque funcional, mientras que el segundo con IronPDF ofrece un método más sencillo y eficiente. IronPDF simplifica las tareas relacionadas con las tablas de referencias cruzadas, el diccionario de páginas y las referencias indirectas. Tanto si se trata sólo del xref en la información del documento como de aspectos de clave privada para PDF seguros, IronPDF es una solución versátil.

Los promotores que deseen explorar IronPDF. La satisfacción del cliente está en la vanguardia de las ofertas de IronPDF, garantizando que los desarrolladores encuentren valor y eficacia en sus tareas relacionadas con PDF, lo que la convierte en una opción convincente para quienes buscan una biblioteca PDF fiable y repleta de funciones.

Para obtener más información sobre cómo utilizar IronPDF, consulte este enlace documentación enlace.

< ANTERIOR
Cómo añadir números de página en PDF con iTextSharp en C#
SIGUIENTE >
Alternativas a iTextSharp Read PDF (Tutorial para desarrolladores)

¿Listo para empezar? Versión: 2024.7 recién publicada

Descarga gratuita de NuGet Descargas totales: 9,974,197 Ver licencias >
123