Cómo extraer texto e imágenes incrustados en archivos PDF

por Chaknith Bin

La extracción de texto e imágenes incrustados implica recuperar el contenido textual y los elementos gráficos del documento. Este proceso permite a los usuarios acceder al contenido y reutilizarlo para editar, buscar o convertir texto a otros formatos y guardar imágenes para reutilizarlas o analizarlas.

Para extraer texto e imágenes de un PDF, utilice IronPdf. La imagen extraída puede guardarse en el disco o convertirse a otro formato de imagen e incrustarse en el nuevo documento renderizado.


Biblioteca NuGet C# para PDF

Instalar con NuGet

Install-Package IronPdf
o
Java PDF JAR

Descargar DLL

Descargar DLL

Instalar manualmente en su proyecto

Extraer texto Ejemplo

La extracción de texto puede realizarse tanto en documentos PDF recién renderizados como en documentos existentes. Utilice el método ExtractAllText para extraer el texto incrustado del documento. El método devolverá una cadena que contiene todo el texto del PDF dado. Las páginas están separadas por cuatro Environment.NewLinesPages consecutivas. Utilicemos un muestra PDF que he extraído del sitio web de Wikipedia.

:path=/static-assets/pdf/content-code-examples/how-to/extract-text-and-images-extract-text.cs
using IronPdf;
using System.IO;

PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

//  Extraer texto
string text = pdf.ExtractAllText();

//  Exportar el texto extraído a un archivo de texto
File.WriteAllText("extractedText.txt", text);
Imports IronPdf
Imports System.IO

Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

'  Extraer texto
Private text As String = pdf.ExtractAllText()

'  Exportar el texto extraído a un archivo de texto
File.WriteAllText("extractedText.txt", text)
VB   C#
Texto extraído

Extraer texto por línea y carácter

Dentro de cada página PDF, es posible recuperar las coordenadas de las líneas de texto y los caracteres. En primer lugar, seleccione una página del PDF y acceda a la propiedad Líneas y caracteres. Las coordenadas se presentan como valores Superior, Derecha, Inferior e Izquierda, que representan la posición del texto.

:path=/static-assets/pdf/content-code-examples/how-to/extract-text-and-images-extract-text-by-line-character.cs
using IronPdf;
using System.IO;
using System.Linq;

//  Abrir PDF desde archivo
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

//  Extraer texto por líneas
var lines = pdf.Pages[0].Lines;

//  Extraer texto por caracteres
var characters = pdf.Pages[0].Characters;

File.WriteAllLines("lines.txt", lines.Select(l => $"at Y={l.Bottom:F2}: {l.Contents}"));
Imports IronPdf
Imports System.IO
Imports System.Linq

'  Abrir PDF desde archivo
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

'  Extraer texto por líneas
Private lines = pdf.Pages(0).Lines

'  Extraer texto por caracteres
Private characters = pdf.Pages(0).Characters

File.WriteAllLines("lines.txt", lines.Select(Function(l) $"at Y={l.Bottom:F2}: {l.Contents}"))
VB   C#
Texto extraído por línea y carácter

Ejemplo de extracción de imágenes

Utilice el método ExtractAllImages para extraer todas las imágenes incrustadas en el documento. El método devolverá las imágenes como una lista de objetos AnyBitmap. Utilizando el mismo documento de nuestro ejemplo anterior, extrajimos las imágenes y las exportamos a la carpeta 'images'.

:path=/static-assets/pdf/content-code-examples/how-to/extract-text-and-images-extract-image.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

//  Extraer imágenes
var images = pdf.ExtractAllImages();

for(int i = 0; i < images.Count; i++)
{
    //  Exportar las imágenes extraídas
    images[i].SaveAs($"images/image{i}.png");
}
Imports IronPdf

Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

'  Extraer imágenes
Private images = pdf.ExtractAllImages()

For i As Integer = 0 To images.Count - 1
	'  Exportar las imágenes extraídas
	images(i).SaveAs($"images/image{i}.png")
Next i
VB   C#
Imágenes extraídas

Además del método ExtractAllImages mostrado anteriormente, el usuario puede utilizar los métodos ExtractAllBitmaps y ExtractAllRawImages para extraer información de imagen del documento. Mientras que el método ExtractAllBitmaps devolverá una lista de AnyBitmap, como en el ejemplo de código, el método ExtractAllRawImages extrae todas las imágenes de un documento PDF y las devuelve como datos sin procesar en forma de matrices de bytes (byte []).


Extraer texto e imágenes de páginas específicas

Tanto la extracción de texto como la de imágenes pueden realizarse en una o varias páginas especificadas. Utilice los métodos ExtractTextFromPage y ExtractTextFromPages para extraer texto de una sola página o de varias, respectivamente. Para extraer imágenes, utilice los métodos ExtractImagesFromPage y ExtractImagesFromPages.

:path=/static-assets/pdf/content-code-examples/how-to/extract-text-and-images-extract-text-single-multiple.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

//  Extraer texto de la página 1
string textFromPage1 = pdf.ExtractTextFromPage(0);

int[] pages = new[] { 0, 2 };

//  Extraer texto de las páginas 1 y 3
string textFromPage1_3 = pdf.ExtractTextFromPages(pages);
Imports IronPdf

Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

'  Extraer texto de la página 1
Private textFromPage1 As String = pdf.ExtractTextFromPage(0)

Private pages() As Integer = { 0, 2 }

'  Extraer texto de las páginas 1 y 3
Private textFromPage1_3 As String = pdf.ExtractTextFromPages(pages)
VB   C#

Chaknith Bin

Ingeniero de software

Chaknith es el Sherlock Holmes de los desarrolladores. La primera vez que se le ocurrió que podría tener futuro en la ingeniería de software fue cuando hacía retos de código por diversión. Su trabajo se centra en IronXL e IronBarcode, pero se enorgullece de ayudar a los clientes con todos los productos. Chaknith aprovecha sus conocimientos, adquiridos hablando directamente con los clientes, para ayudar a mejorar los propios productos. Sus comentarios anecdóticos van más allá de los tickets de Jira y apoyan el desarrollo de productos, la documentación y el marketing, para mejorar la experiencia general del cliente.Cuando no está en la oficina, se le puede encontrar aprendiendo sobre aprendizaje automático, codificación y senderismo.