Générer des vignettes pour les fichiers PDF en C#

Vous devrez souvent générer des vignettes lors de l’intégration des documents PDF dans une application Web. De plus, les vignettes des pages sont requises lors de la création d’un visualiseur PDF. Pour de tels scénarios, cet article explique comment générer des vignettes d’un fichier PDF par programmation dans C# .NET. Nous expliquerons explicitement comment créer une vignette d’une page particulière ou de toutes les pages d’un fichier PDF.

API C# .NET pour générer des vignettes de PDF

Aspose.PDF for .NET est une bibliothèque de classes C# qui vous permet de créer et de manipuler des documents PDF dans les applications .NET. À l’aide de l’API, vous pouvez effectuer assez facilement des opérations d’automatisation PDF de base et avancées. Nous allons utiliser cette API pour générer des vignettes d’un fichier PDF. L’API peut être téléchargée en tant que DLL ou installée via NuGet.

PM> Install-Package Aspose.Pdf

Générer une vignette d’un fichier PDF en C# .NET

Habituellement, vous devez générer une seule image miniature pour un document PDF. La page de vignette peut être la page de couverture ou toute autre page de votre choix. Voici les étapes pour générer une vignette de la page souhaitée d’un PDF en C#.

  • Chargez le fichier PDF à l’aide de la classe Document.
  • Obtenez une référence de la page souhaitée à partir de la collection Document.Pages.
  • Créez un nouveau FileStream pour le fichier image.
  • Créez une instance de la classe Resolution pour définir la résolution de l’image miniature.
  • Instanciez JpegDevice et définissez la hauteur, la largeur, la résolution et la qualité de l’image.
  • Générez une vignette à l’aide de la méthode JpegDevice.Process(Page, FileStream).
  • Fermez le flux de fichiers.

L’exemple de code suivant montre comment générer une vignette d’un fichier PDF en C#.

// Ouvrir le document
Document pdfDocument = new Document("file.pdf");

int pageIndex = 0;

// Obtenir la page de l'index souhaité à partir de la collection
var page = pdfDocument.Pages[pageIndex];

// Créer un flux pour le fichier image
using (FileStream imageStream = new FileStream("Thumbanils_" + page.Number + ".jpg", FileMode.Create))
{
    // Créer un objet de résolution
    Resolution resolution = new Resolution(300);

    // Créez une instance de JpegDevice et définissez la hauteur, la largeur, la résolution et la qualité de l'image
    JpegDevice jpegDevice = new JpegDevice(45, 59, resolution, 100);

    // Convertir une page particulière et enregistrer l'image à diffuser
    jpegDevice.Process(page, imageStream);

    // Fermer le flux
    imageStream.Close();
}

Générer des vignettes de toutes les pages au format PDF en C#

Voici les étapes pour générer des vignettes pour toutes les pages au format PDF en C#.

  • Chargez le fichier PDF à l’aide de la classe Document.
  • Parcourez toutes les pages du PDF à l’aide de la collection Document.Pages.
  • A chaque itération, effectuez les opérations suivantes :
    • Créez un nouveau FileStream pour le fichier image.
    • Créez une instance de la classe Resolution pour définir la résolution de l’image miniature.
    • Instanciez JpegDevice et définissez la hauteur, la largeur, la résolution et la qualité de l’image.
    • Générez une vignette à l’aide de la méthode JpegDevice.Process(Page, FileStream).
    • Fermez le flux de fichiers.

L’exemple de code suivant montre comment générer des vignettes pour toutes les pages d’un PDF.

// Ouvrir le document
Document pdfDocument = new Document("file.pdf");

// Parcourir les pages en boucle
for (int pageCount = 1; pageCount <= pdfDocument.Pages.Count; pageCount++)
{
    // Créer un flux pour chaque image
    using (FileStream imageStream = new FileStream("Thumbanils_" + pageCount + ".jpg", FileMode.Create))
    {
        // Créer un objet de résolution
        Resolution resolution = new Resolution(300);

        // Créez une instance de JpegDevice et définissez la hauteur, la largeur, la résolution et la qualité de l'image
        JpegDevice jpegDevice = new JpegDevice(45, 59, resolution, 100);

        // Convertir une page particulière et enregistrer l'image à diffuser
        jpegDevice.Process(pdfDocument.Pages[pageCount], imageStream);

        // Fermer le flux
        imageStream.Close();
    }
}

Obtenez une licence gratuite

Vous pouvez obtenir une licence temporaire gratuite afin d’utiliser Aspose.PDF for .NET sans limitations d’évaluation.

Conclusion

Dans cet article, vous avez appris à générer des vignettes pour les fichiers PDF en C#. Vous avez vu comment générer une vignette d’une page particulière ou de toutes les pages d’un fichier PDF. En outre, vous pouvez en savoir plus sur l’API C# PDF à l’aide de la documentation. Si vous avez des questions ou des questions, vous pouvez nous contacter via notre forum.

Voir également