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

This article was translated from English: Does it need improvement?
Translated
View the article in English

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");

// Extract text
string text = pdf.ExtractAllText();

// Export the extracted text to a text file
File.WriteAllText("extractedText.txt", text);
Imports IronPdf
Imports System.IO

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

' Extract text
Private text As String = pdf.ExtractAllText()

' Export the extracted text to a text file
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 las propiedades 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;

// Open PDF from file
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

// Extract text by lines
var lines = pdf.Pages[0].Lines;

// Extract text by characters
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

' Open PDF from file
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")

' Extract text by lines
Private lines = pdf.Pages(0).Lines

' Extract text by characters
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");

// Extract images
var images = pdf.ExtractAllImages();

for(int i = 0; i < images.Count; i++)
{
    // Export the extracted images
    images[i].SaveAs($"images/image{i}.png");
}
Imports IronPdf

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

' Extract images
Private images = pdf.ExtractAllImages()

For i As Integer = 0 To images.Count - 1
	' Export the extracted images
	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");

// Extract text from page 1
string textFromPage1 = pdf.ExtractTextFromPage(0);

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

// Extract text from pages 1 & 3
string textFromPage1_3 = pdf.ExtractTextFromPages(pages);
Imports IronPdf

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

' Extract text from page 1
Private textFromPage1 As String = pdf.ExtractTextFromPage(0)

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

' Extract text from pages 1 & 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.