Cette page peut contenir du texte traduit automatiquement.

Convertir un PDF en image en C# et VB.NET

Il existe des cas où vous devez convertir des PDF en images. Par exemple, vous pouvez avoir besoin de créer des miniatures à partir de PDF ou d’effectuer de la reconnaissance optique de caractères (OCR) sur certains documents PDF.

Vous pouvez utiliser la bibliothèque Docotic.Pdf pour convertir des documents PDF en images dans des projets C# et VB.NET. La bibliothèque est entièrement managée à 100 %, sans dépendances externes. Elle n’utilise pas System.Drawing.dll ni GDI+ pour le raster de PDF. Vous obtenez donc une sortie cohérente sous Windows, Linux, macOS, iOS et Android.

La bibliothèque est disponible sur NuGet et sur notre site. Obtenez la bibliothèque et une clé de licence gratuite à durée limitée sur la page Télécharger la bibliothèque PDF C# .NET.

Docotic.Pdf offre de nombreuses options pour la conversion de PDF en image. Et il peut aussi rendre et imprimer des documents PDF. Voyons comment vous pouvez convertir des PDF en images à l’aide de la bibliothèque Docotic.Pdf.

PDF en image en C# et VB.NET

Enregistrer une page PDF en image PNG, JPG ou TIFF

La bibliothèque Docotic.Pdf vous permet de convertir des pages PDF en images PNG, JPEG ou TIFF. Vous pouvez écrire les images résultantes dans un flux ou dans un fichier. Cet extrait C# enregistre des pages PDF en images PNG avec un fond blanc et une résolution de 300x300 dpi :

using BitMiracle.Docotic.Pdf;

using var pdf = new PdfDocument("your_document.pdf");

PdfDrawOptions options = PdfDrawOptions.Create();
options.BackgroundColor = new PdfRgbColor(255, 255, 255);
options.HorizontalResolution = 300;
options.VerticalResolution = 300;

for (int i = 0; i < pdf.PageCount; ++i)
    pdf.Pages[i].Save($"page_{i}.png", options);

Vous pouvez demander à la bibliothèque de produire des images JPEG ou TIFF au lieu de PNG en utilisant la propriété PdfDrawOptions.Compression. L’extrait suivant montre comment passer à la création d’images JPEG :

PdfDrawOptions options = PdfDrawOptions.Create();
options.Compression = ImageCompressionOptions.CreateJpeg();

Des exemples C# et VB.NET associés sont disponibles sur GitHub.

Document PDF en TIFF multipage dans .NET

Vous pouvez enregistrer l’intégralité du document dans une image TIFF multipage à l’aide de la méthode PdfDocument.SaveAsTiff. Voici un exemple C# de conversion de PDF en TIFF :

using var pdf = new PdfDocument("document.pdf");
PdfDrawOptions options = PdfDrawOptions.Create();
options.BackgroundColor = new PdfRgbColor(255, 255, 255);

pdf.SaveAsTiff("result.tiff", options);

Téléchargez et essayez le code d’exemple Enregistrer un PDF en TIFF multipage depuis GitHub. Les versions C# et VB.NET y sont disponibles.

Créer des miniatures à partir d’un PDF

À l’aide de la bibliothèque Docotic.Pdf, vous pouvez générer des miniatures à partir de pages PDF. Cet exemple C# crée une miniature de 200x200 pixels à partir de la première page du PDF donné et écrit la miniature dans un flux mémoire :

using var pdf = new PdfDocument("document.pdf");
PdfDrawOptions options = PdfDrawOptions.CreateFitSize(new PdfSize(200, 200), false);
options.BackgroundColor = new PdfGrayColor(100);

using var stream = new MemoryStream();
pdf.Pages[0].Save(stream, options);

Vous pouvez également utiliser la méthode PdfDrawOptions.CreateFitWidth ou PdfDrawOptions.CreateFitHeight pour produire des images miniatures d’une largeur ou d’une hauteur spécifiée.

Convertir un PDF en images bitonales ou en niveaux de gris dans .NET

La bibliothèque peut convertir des documents PDF en images TIFF bitonales (noir et blanc). Cet exemple montre comment produire une image TIFF bitonale à partir d’un document PDF en C# :

using var pdf = new PdfDocument("colored.pdf");
PdfDrawOptions options = PdfDrawOptions.Create();
options.BackgroundColor = new PdfRgbColor(255, 255, 255);
options.Compression = ImageCompressionOptions.CreateTiff().SetBitonal();

pdf.SaveAsTiff("bitonal.tiff", options);

Vous pouvez également spécifier un niveau de seuil lors de l’utilisation de la méthode TiffImageCompressionOptions.SetBitonalThreshold. Le niveau de seuil définit comment transformer les couleurs en niveaux de gris, RGB ou CMYK en noir et blanc.

Docotic.Pdf prend également en charge la conversion de PDF en images PNG, JPG ou TIFF en niveaux de gris. Utilisez simplement l’une des méthodes PngImageCompressionOptions.SetGrayscale, JpegImageCompressionOptions.SetGrayscale, TiffImageCompressionOptions.SetGrayscale comme dans l’extrait suivant :

PdfDrawOptions options = PdfDrawOptions.Create();
options.Compression = ImageCompressionOptions.CreatePng().SetGrayscale();

Zoom sur un PDF

La méthode PdfDrawOptions.CreateZoom vous permet d’obtenir une image d’une page PDF avec un niveau de zoom spécifié. Cet exemple C# convertit une page PDF en image avec un zoom de 400 % :

using var pdf = new PdfDocument(@"document.pdf");
PdfDrawOptions options = PdfDrawOptions.CreateZoom(400);
pdf.Pages[0].Save("zoomed.png", options);

Rendu partiel d’un PDF en image

Vous pouvez avoir besoin de convertir en image seulement une partie d’une page PDF. Par exemple, pour découper une grande page PDF en tuiles. Ou pour rogner du contenu indésirable.

Ce code C# enregistre une image d’une zone de 256x256 points dans le coin supérieur gauche d’une page PDF :

using var pdf = new PdfDocument("large.pdf");
PdfDrawOptions options = PdfDrawOptions.Create();
options.BackgroundColor = new PdfRgbColor(255, 255, 255);

PdfPage page = pdf.Pages[0];
PdfBox cropBoxBefore = page.CropBox;

page.CropBox = new PdfBox(0, cropBoxBefore.Height - 256, 256, cropBoxBefore.Height);
page.Save("part.png", options);

page.CropBox = cropBoxBefore;

Rendu en tuiles d’un PDF en image

Docotic.Pdf fournit une prise en charge intégrée du rendu en tuiles de PDF vers TIFF. Cette méthode est utile lorsque vous devez traiter de grandes pages PDF avec une quantité de mémoire fixe.

Par exemple, votre document PDF contient une page de taille 10000x10000 points. Une conversion classique de cette page en image RGB à une résolution de 300 DPI nécessite plus de 1 Go (= 10000 * 10000 * 3 * 300 / 72.0 octets) de mémoire pour les données intermédiaires d’image RGB non compressées. Avec un rendu en tuiles de 1024x1024, vous pouvez limiter la consommation de mémoire pour les données d’image RGB non compressées à 12 Mo (= 1024 * 1024 * 3 * 300 / 72.0 octets).

Notez que la conversion PDF en image par tuiles est plus lente qu’une conversion classique. Pour chaque tuile, la bibliothèque doit traiter toutes les opérations de la page PDF, même si certaines n’affectent pas la tuile actuelle.

Cet exemple C# montre comment convertir un PDF en image à l’aide de tuiles de 512x512 :

using var pdf = new PdfDocument("large.pdf");
PdfDrawOptions options = PdfDrawOptions.Create();
options.Compression = ImageCompressionOptions.CreateTiff().SetTileSize(512, 512);
options.BackgroundColor = new PdfGrayColor(100);
options.HorizontalResolution = 300;
options.VerticalResolution = 300;

pdf.Pages[0].Save("tiled.tiff", options);

Conclusion

La bibliothèque Docotic.Pdf fournit différentes options pour la conversion de PDF en image dans .NET. Vous pouvez convertir des pages PDF en images de taille normale ou en miniatures aux formats PNG, TIFF et JPEG. Et vous pouvez enregistrer des documents PDF sous forme de fichiers TIFF multipages. La bibliothèque peut également produire des images bitonales et en niveaux de gris.

Téléchargez et essayez les exemples PDF en image sur GitHub.

Contactez-nous si vous avez des questions sur la conversion de PDF en image.