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 devrez peut-être créer des images miniatures à partir de fichiers PDF ou effectuer une 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 gérée à 100% sans dépendances externes. Il n'utilise pas System.Drawing.dll et GDI+ pour la rastérisation des PDF. Par conséquent, vous obtiendrez un résultat cohérent sous Windows, Linux, macOS, iOS et Android.

Bibliothèque Docotic.Pdf 9.3.17036-dev Tests de régression 14,665 réussis Téléchargements totaux de NuGet 4,191,515

Vous pouvez télécharger les binaires de la bibliothèque ou utiliser son package NuGet. Pour essayer Docotic.Pdf sans restrictions du mode d'évaluation, vous pouvez obtenir la clé de licence gratuite à durée limitée en utilisant le formulaire ici.

Docotic.Pdf offre de nombreuses options pour la conversion de PDF en image. Et il peut également rendre et imprimer des documents PDF. Voyons comment convertir un PDF en images à l'aide de la bibliothèque Docotic.Pdf.

PDF en image en C# et VB.NET

Enregistrer la page PDF au format 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 un fichier. Cet extrait C# enregistre les pages PDF dans des images PNG avec un fond blanc et une résolution de 300 x 300 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 = ..;
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 sur une image TIFF multipage à l'aide de la méthode PdfDocument.SaveAsTiff. Voici un exemple C# pour la conversion 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 l'exemple de code Enregistrer le PDF au format TIFF multipage à partir de GitHub. Les versions C# et VB.NET y sont disponibles.

Créer des vignettes à partir d'un PDF

Avec l'aide de la bibliothèque Docotic.Pdf, vous pouvez générer des vignettes à partir de pages PDF. Cet exemple C# crée une vignette de 200 x 200 pixels à partir de la première page du PDF donné et écrit la vignette 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, RVB ou CMJN en noir et blanc.

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

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

Agrandir le 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 niveau de zoom de 400 % :

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

Rendu partiel du PDF vers l'image

Vous devrez peut-être convertir seulement une partie d’une page PDF en image. Par exemple, pour diviser une grande page PDF en vignettes. Ou pour recadrer certains contenus indésirables.

Ce code C# enregistre une image d'une zone de 256 x 256 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 PDF en mosaïque vers image

Docotic.Pdf fournit une prise en charge intégrée du rendu en mosaïque de PDF en TIFF. Cette méthode est utile lorsque vous devez traiter des pages PDF volumineuses en utilisant une quantité de mémoire fixe.

Par exemple, votre document PDF contient une page d'une taille de 10 000 x 10 000 points. La conversion régulière de cette page en une image RVB à une résolution de 300 DPI nécessite plus de 1 Go (= 10 000 * 10 000 * 3 * 300 / 72,0 octets) de mémoire pour les données d'image RVB non compressées intermédiaires. En utilisant le rendu en mosaïque avec des mosaïques de 1 024 x 1 024, vous pouvez limiter la consommation de mémoire pour les données d'image RVB non compressées à 12 Mo (= 1 024 * 1 024 * 3 * 300 / 72,0 octets).

Notez que la conversion de PDF en mosaïque en image est plus lente que la conversion normale. Pour chaque vignette, la bibliothèque doit traiter toutes les opérations de la page PDF, même si certaines d'entre elles n'affectent pas la vignette actuelle.

Cet exemple C# montre comment convertir un PDF en image à l'aide de vignettes 512 x 512 :

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

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 pleine taille ou 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 des exemples PDF en image à partir de GitHub.

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