Generar miniaturas para archivos PDF en C#

Es posible que a menudo necesite generar miniaturas mientras incrusta los documentos PDF en una aplicación web. Además, se requieren miniaturas de las páginas al crear un visor de PDF. Para tales escenarios, este artículo cubre cómo generar miniaturas de un archivo PDF mediante programación en C# .NET. Cubriremos explícitamente cómo crear una miniatura de una página en particular o de todas las páginas en un archivo PDF.

C# .NET API para generar miniaturas de PDF

Aspose.PDF for .NET es una biblioteca de clases C# que le permite crear y manipular documentos PDF dentro de las aplicaciones .NET. Con la API, puede realizar operaciones de automatización de PDF básicas y avanzadas con bastante facilidad. Usaremos esta API para generar miniaturas de un archivo PDF. La API se puede descargar como DLL o instalar a través de NuGet.

PM> Install-Package Aspose.Pdf

Genere una miniatura de un archivo PDF en C# .NET

Por lo general, debe generar una sola imagen en miniatura para un documento PDF. La página de la miniatura podría ser la portada o cualquier otra página de su elección. Los siguientes son los pasos para generar una miniatura de la página deseada de un PDF en C#.

  • Cargue el archivo PDF utilizando la clase Document.
  • Obtenga una referencia de la página deseada de la colección Document.Pages.
  • Cree un nuevo FileStream para el archivo de imagen.
  • Cree una instancia de la clase Resolución para establecer la resolución de la imagen en miniatura.
  • Cree una instancia de JpegDevice y configure la altura, el ancho, la resolución y la calidad de la imagen.
  • Genere una miniatura usando el método JpegDevice.Process(Page, FileStream).
  • Cierre la secuencia de archivos.

El siguiente ejemplo de código muestra cómo generar una miniatura de un archivo PDF en C#.

// Abrir documento
Document pdfDocument = new Document("file.pdf");

int pageIndex = 0;

// Obtener la página del índice deseado de la colección
var page = pdfDocument.Pages[pageIndex];

// Crear secuencia para archivo de imagen
using (FileStream imageStream = new FileStream("Thumbanils_" + page.Number + ".jpg", FileMode.Create))
{
    // Crear objeto de resolución
    Resolution resolution = new Resolution(300);

    // Cree una instancia de JpegDevice y configure la altura, el ancho, la resolución y la calidad de la imagen
    JpegDevice jpegDevice = new JpegDevice(45, 59, resolution, 100);

    // Convierta una página en particular y guarde la imagen para transmitir
    jpegDevice.Process(page, imageStream);

    // Cerrar transmisión
    imageStream.Close();
}

Genere miniaturas de todas las páginas en PDF en C#

Los siguientes son los pasos para generar miniaturas para todas las páginas en PDF en C#.

  • Cargue el archivo PDF utilizando la clase Document.
  • Recorra todas las páginas en PDF usando la colección Document.Pages.
  • En cada iteración, realice las siguientes operaciones:
    • Cree un nuevo FileStream para el archivo de imagen.
    • Cree una instancia de la clase Resolución para establecer la resolución de la imagen en miniatura.
    • Cree una instancia de JpegDevice y configure la altura, el ancho, la resolución y la calidad de la imagen.
    • Genere una miniatura utilizando el método JpegDevice.Process(Page, FileStream).
    • Cierre la secuencia de archivos.

El siguiente ejemplo de código muestra cómo generar miniaturas para todas las páginas en PDF.

// Abrir documento
Document pdfDocument = new Document("file.pdf");

// Bucle a través de las páginas
for (int pageCount = 1; pageCount <= pdfDocument.Pages.Count; pageCount++)
{
    // Crear flujo para cada imagen
    using (FileStream imageStream = new FileStream("Thumbanils_" + pageCount + ".jpg", FileMode.Create))
    {
        // Crear objeto de resolución
        Resolution resolution = new Resolution(300);

        // Cree una instancia de JpegDevice y configure la altura, el ancho, la resolución y la calidad de la imagen
        JpegDevice jpegDevice = new JpegDevice(45, 59, resolution, 100);

        // Convierta una página en particular y guarde la imagen para transmitir
        jpegDevice.Process(pdfDocument.Pages[pageCount], imageStream);

        // Cerrar transmisión
        imageStream.Close();
    }
}

Obtenga una licencia gratis

Puede obtener una licencia temporal gratuita para usar Aspose.PDF for .NET sin limitaciones de evaluación.

Conclusión

En este artículo, ha aprendido a generar miniaturas para archivos PDF en C#. Ha visto cómo generar una miniatura de una página en particular o de todas las páginas de un archivo PDF. Además, puede explorar más sobre la API de PDF de C# utilizando la documentación. En caso de que tenga alguna pregunta o consulta, puede contactarnos a través de nuestro foro.

Ver también