Trabajar con imágenes en PDF C#

Una imagen vale mas que mil palabras. Por lo tanto, las imágenes y los gráficos juegan un papel importante en PDF, así como en otros documentos. Dado que PDF se ha convertido en uno de los formatos de archivo más populares y ampliamente utilizados, este artículo trata sobre cómo manipular imágenes en archivos PDF mediante programación. Más precisamente, aprenderá a agregar, extraer, eliminar y reemplazar imágenes de archivos PDF en C# .NET.

API de C# para agregar, eliminar y reemplazar imágenes en PDF: descarga gratuita

Aspose.PDF for .NET es una biblioteca de clases de C# que le permite crear y manipular documentos PDF desde las aplicaciones .NET. Con la API, puede realizar funciones de automatización de PDF básicas y avanzadas con bastante facilidad. Además, puede manipular imágenes en archivos PDF existentes. La API se puede descargar como DLL o instalar a través de NuGet.

PM> Install-Package Aspose.Pdf

Agregar imagen en un archivo PDF en C# .NET

Los siguientes son los pasos para agregar una imagen a un archivo PDF usando Aspose.PDF for .NET.

  • Utilice la clase Document para crear un archivo PDF nuevo o cargar uno existente.
  • Obtenga la referencia de la página deseada en el objeto Página.
  • Agregue la imagen a la colección Recursos de la página.
  • Utilice los siguientes operadores para colocar la imagen en la página:
    • Guardar operator to save the current graphical state.
    • ConcatenarMatriz operator to specify where the image is to be placed.
    • Hacer operator to draw the image on the page.
    • GRestaurar operator to save the updated graphical state.
  • Guarde el archivo PDF actualizado usando el método Document.Save(String).

El siguiente ejemplo de código muestra cómo agregar una imagen a un archivo PDF usando C#.

// Para obtener ejemplos completos y archivos de datos, vaya a https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Abrir documento
Document pdfDocument = new Document("AddImage.pdf");

// Establecer coordenadas
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 200;
int upperRightY = 200;

// Obtener la página donde se debe agregar la imagen
Page page = pdfDocument.Pages[1];

// Cargar imagen en flujo
FileStream imageStream = new FileStream("aspose-logo.jpg", FileMode.Open);

// Agregar imagen a la colección de imágenes de los recursos de la página
page.Resources.Images.Add(imageStream);

// Usando el operador GSave: este operador guarda el estado actual de los gráficos
page.Contents.Add(new Aspose.Pdf.Operators.GSave());

// Crear objetos Rectángulo y Matriz
Aspose.Pdf.Rectangle rectangle = new Aspose.Pdf.Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
Matrix matrix = new Matrix(new double[] { rectangle.URX - rectangle.LLX, 0, 0, rectangle.URY - rectangle.LLY, rectangle.LLX, rectangle.LLY });

// Usando el operador ConcatenateMatrix (matriz concatenada): define cómo se debe colocar la imagen
page.Contents.Add(new Aspose.Pdf.Operators.ConcatenateMatrix(matrix));
XImage ximage = page.Resources.Images[page.Resources.Images.Count];

// Usando el operador Do: este operador dibuja la imagen
page.Contents.Add(new Aspose.Pdf.Operators.Do(ximage.Name));

// Usando el operador GRestore: este operador restaura el estado de los gráficos
page.Contents.Add(new Aspose.Pdf.Operators.GRestore());

// Guardar documento actualizado
pdfDocument.Save("AddImage_out.pdf");

Extraer imágenes de PDF en C#

En caso de que desee extraer todas las imágenes de un archivo PDF, puede hacerlo siguiendo los pasos a continuación.

El siguiente ejemplo de código muestra cómo extraer imágenes de PDF usando C#.

// Para obtener ejemplos completos y archivos de datos, vaya a https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Abrir documento
Document pdfDocument = new Document("ExtractImages.pdf");

// Extraer una imagen en particular
XImage xImage = pdfDocument.Pages[1].Resources.Images[1];

FileStream outputImage = new FileStream("output.jpg", FileMode.Create);

// Guardar imagen de salida
xImage.Save(outputImage, ImageFormat.Jpeg);
outputImage.Close();

Eliminar imágenes de PDF en C#

Una vez que tenga acceso a los recursos de una página en PDF, puede eliminar las imágenes de ella. Los siguientes son los pasos para eliminar imágenes de un archivo PDF usando C#.

El siguiente ejemplo de código muestra cómo eliminar imágenes de un PDF usando C#.

// Para obtener ejemplos completos y archivos de datos, vaya a https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Abrir documento
Document pdfDocument = new Document("DeleteImages.pdf");

// Eliminar una imagen en particular
pdfDocument.Pages[1].Resources.Images.Delete(1);

// Guardar archivo PDF actualizado
pdfDocument.Save("output.pdf");

Reemplazar imagen en PDF en C#

Aspose.PDF for .NET también le permite reemplazar una imagen en particular en el PDF. Para esto, puede reemplazar la imagen en la colección de imágenes de la página. Los siguientes son los pasos para reemplazar una imagen en PDF usando C#.

  • Cargue el archivo PDF usando la clase Document.
  • Reemplace la imagen deseada usando el método [Document.Pages1.Resources.Images.Replace(Int32, Stream, Int32, Boolean)]24.
  • Guarde el archivo PDF actualizado usando el método Document.Save(String).

El siguiente ejemplo de código muestra cómo reemplazar una imagen en PDF usando C#.

// Para obtener ejemplos completos y archivos de datos, vaya a https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Abrir documento
Document pdfDocument = new Document("input.pdf");

// Reemplazar una imagen en particular
pdfDocument.Pages[1].Resources.Images.Replace(1, new FileStream("lovely.jpg", FileMode.Open));

// Guardar archivo PDF actualizado
pdfDocument.Save("output.pdf");

C# .NET PDF API - Obtenga una licencia gratuita

Puede obtener una licencia temporal gratuita para probar la API sin limitaciones de evaluación.

Conclusión

Las imágenes y los objetos gráficos son elementos importantes de los documentos PDF. Por lo tanto, en este artículo, hemos cubierto cómo manipular imágenes en un PDF usando C# .NET API. El tutorial paso a paso y los ejemplos de código muestran cómo agregar, extraer, quitar y reemplazar imágenes en archivos PDF en C#. Puede explorar más sobre la API de PDF de C# utilizando la documentación.

Ver también