Convertir un PDF en différents formats d'image en C#
Aperçu
Cet article explique comment convertir un PDF en différents formats d’image en utilisant C#. Il couvre les sujets suivants.
Format d’image : TIFF
- C# PDF en TIFF
- C# Convertir PDF en TIFF
- C# Convertir des pages uniques ou particulières du PDF en TIFF
Format d’image : BMP
Format d’image : EMF
Forme d’Image : JPG
Forme d’Image : PNG
Forme d’Image : GIF
Forme d’Image : SVG
C# Convertir PDF en Image
Le code suivant fonctionne également avec la bibliothèque Aspose.PDF.Drawing.
Aspose.PDF pour .NET utilise plusieurs approches pour convertir un PDF en image. Aspose.PDF pour .NET utilise plusieurs approches pour convertir des PDF en image.
Il existe plusieurs classes dans la bibliothèque qui vous permettent d’utiliser un dispositif virtuel pour transformer des images. DocumentDevice est orienté pour la conversion de l’ensemble du document, mais ImageDevice - pour une page particulière.
Convertir un PDF en utilisant la classe DocumentDevice
Aspose.PDF pour .NET rend possible la conversion des pages PDF en images TIFF.
La classe TiffDevice (basée sur DocumentDevice) vous permet de convertir des pages PDF en images TIFF. Cette classe fournit une méthode nommée Process
qui vous permet de convertir toutes les pages d’un fichier PDF en une seule image TIFF.
Essayez de convertir un PDF en TIFF en ligne
Aspose.PDF pour .NET vous présente une application gratuite en ligne “PDF en TIFF”, où vous pouvez essayer d’explorer la fonctionnalité et la qualité de son fonctionnement.
Convertir les pages PDF en une seule image TIFF
Aspose.PDF pour .NET explique comment convertir toutes les pages d’un fichier PDF en une seule image TIFF :
Étapes : Convertir PDF en TIFF en C#
- Créez un objet de la classe Document.
- Créez des objets TiffSettings et TiffDevice
- Appelez la méthode TiffDevice.Process() pour convertir le document PDF en TIFF.
- Pour définir les propriétés du fichier de sortie, utilisez la classe TiffSettings.
Le code suivant montre comment convertir toutes les pages du PDF en une seule image TIFF.
public static void ConvertPDFtoTIFF()
{
// Ouvrir le document
Document pdfDocument = new Document(_dataDir + "PageToTIFF.pdf");
// Créer un objet Résolution
Resolution resolution = new Resolution(300);
// Créer un objet TiffSettings
TiffSettings tiffSettings = new TiffSettings
{
Compression = CompressionType.None,
Depth = ColorDepth.Default,
Shape = ShapeType.Landscape,
SkipBlankPages = false
};
// Créer un appareil TIFF
TiffDevice tiffDevice = new TiffDevice(resolution, tiffSettings);
// Convertir une page particulière et sauvegarder l'image dans le flux
tiffDevice.Process(pdfDocument, _dataDir + "AllPagesToTIFF_out.tif");
}
Convertir une page en image TIFF
Aspose.PDF pour .NET permet de convertir une page spécifique d’un fichier PDF en image TIFF, utilisez une version surchargée de la méthode Process(..) qui prend un numéro de page comme argument pour la conversion. Le fragment de code suivant montre comment convertir la première page d’un PDF au format TIFF.
Étapes : Convertir des pages simples ou spécifiques d’un PDF en TIFF en C#
- Créer un objet de la classe Document.
- Créer des objets TiffSettings et TiffDevice
- Appeler la méthode surchargée TiffDevice.Process() avec les paramètres fromPage et toPage pour convertir les pages du document PDF en TIFF.
public static void ConvertPDFtoTiffSinglePage()
{
// Ouvrir le document
Document pdfDocument = new Document(_dataDir + "PageToTIFF.pdf");
// Créer un objet Resolution
Resolution resolution = new Resolution(300);
// Créer un objet TiffSettings
TiffSettings tiffSettings = new TiffSettings
{
Compression = CompressionType.None,
Depth = ColorDepth.Default,
Shape = ShapeType.Landscape,
};
// Créer un dispositif TIFF
TiffDevice tiffDevice = new TiffDevice(resolution, tiffSettings);
// Convertir une page spécifique et sauvegarder l'image dans un flux
tiffDevice.Process(pdfDocument, 1, 1, _dataDir + "PageToTIFF_out.tif");
}
Utilisez l’algorithme de Bradley lors de la conversion
Aspose.PDF pour .NET prend en charge la fonctionnalité de conversion de PDF en TIF utilisant la compression LZW et ensuite, avec l’utilisation de AForge, la binarisation peut être appliquée. Cependant, l’un des clients a demandé que pour certaines images, ils doivent obtenir le seuil en utilisant Otsu, donc ils aimeraient également utiliser Bradley.
public static void ConvertPDFtoTiffBradleyBinarization()
{
// Ouvrir le document
Document pdfDocument = new Document(_dataDir + "PageToTIFF.pdf");
string outputImageFile = _dataDir + "resultant_out.tif";
string outputBinImageFile = _dataDir + "37116-bin_out.tif";
// Créer un objet Résolution
Resolution resolution = new Resolution(300);
// Créer un objet TiffSettings
TiffSettings tiffSettings = new TiffSettings
{
Compression = CompressionType.LZW,
Depth = Aspose.Pdf.Devices.ColorDepth.Format1bpp
};
// Créer un dispositif TIFF
TiffDevice tiffDevice = new TiffDevice(resolution, tiffSettings);
// Convertir une page particulière et sauvegarder l'image dans un flux
tiffDevice.Process(pdfDocument, outputImageFile);
using (FileStream inStream = new FileStream(outputImageFile, FileMode.Open))
{
using (FileStream outStream = new FileStream(outputBinImageFile, FileMode.Create))
{
tiffDevice.BinarizeBradley(inStream, outStream, 0.1);
}
}
}
Convertir un PDF en utilisant la classe ImageDevice
ImageDevice
est l’ancêtre de BmpDevice
, JpegDevice
, GifDevice
, PngDevice
et EmfDevice
.
- La classe BmpDevice vous permet de convertir des pages PDF en images BMP.
- La classe EmfDevice vous permet de convertir des pages PDF en images EMF.
- La classe JpegDevice vous permet de convertir des pages PDF en images JPEG.
- La classe PngDevice vous permet de convertir des pages PDF en images PNG.
- La classe GifDevice vous permet de convertir des pages PDF en images GIF.
Jetons un coup d’œil à la manière de convertir une page PDF en image. Jetons un œil à comment convertir une page PDF en image.
La classe BmpDevice
fournit une méthode nommée Process qui permet de convertir une page spécifique du fichier PDF en format d’image BMP. Les autres classes disposent de la même méthode. Donc, si nous avons besoin de convertir une page PDF en image, nous instancions simplement la classe requise.
Les étapes suivantes et le fragment de code en C# montrent cette possibilité
- Convertir PDF en BMP en C#
- Convertir PDF en EMF en C#
- Convertir PDF en JPG en C#
- Convertir PDF en PNG en C#
- Convertir PDF en GIF en C#
Étapes : PDF en Image (BMP, EMF, JPG, PNG, GIF) en C#
- Créez une instance d’une sous-classe de ImageDevice par exemple :
- BmpDevice (pour convertir un PDF en BMP)
- EmfDevice (pour convertir un PDF en Emf)
- JpegDevice (pour convertir un PDF en JPG)
- PngDevice (pour convertir un PDF en PNG)
- GifDevice (pour convertir un PDF en GIF)
- Appelez la méthode ImageDevice.Process() pour effectuer la conversion de PDF en image.
public static class ExampleConvertPdfToImage
{
private static readonly string _dataDir = @"C:\Samples\";
// BMP, JPEG, GIF, PNG, EMF
public static void ConvertPDFusingImageDevice()
{
// Créer un objet Resolution
Resolution resolution = new Resolution(300);
BmpDevice bmpDevice = new BmpDevice(resolution);
JpegDevice jpegDevice = new JpegDevice(resolution);
GifDevice gifDevice = new GifDevice(resolution);
PngDevice pngDevice = new PngDevice(resolution);
EmfDevice emfDevice = new EmfDevice(resolution);
Document document = new Document(_dataDir +
"ConvertAllPagesToBmp.pdf");
ConvertPDFtoImage(bmpDevice, "bmp", document);
ConvertPDFtoImage(jpegDevice,"jpeg", document);
ConvertPDFtoImage(gifDevice, "gif", document);
ConvertPDFtoImage(pngDevice, "png", document);
ConvertPDFtoImage(emfDevice, "emf", document);
}
}
public static void ConvertPDFtoImage(ImageDevice imageDevice,
string ext, Document pdfDocument)
{
for (int pageCount = 1; pageCount <= pdfDocument.Pages.Count; pageCount++)
{
using (FileStream imageStream =
new FileStream($"{_dataDir}image{pageCount}_out.{ext}",
FileMode.Create))
{
// Convertir une page spécifique et enregistrer l'image dans le flux
imageDevice.Process(pdfDocument.Pages[pageCount], imageStream);
// Fermer le flux
imageStream.Close();
}
}
}
Essayez de convertir des PDF en PNG en ligne
Voici un exemple de fonctionnement de nos applications gratuites.
Aspose.PDF pour .NET vous présente l’application gratuite en ligne “PDF en PNG”, où vous pouvez explorer la fonctionnalité et la qualité de son fonctionnement.
Convertir un PDF en utilisant la classe SaveOptions
Cette partie de l’article vous montre comment convertir un PDF en SVG en utilisant C# et la classe SaveOptions.
Essayez de convertir des PDF en SVG en ligne
Aspose.PDF pour .NET vous présente l’application gratuite en ligne “PDF en SVG”, où vous pouvez explorer la fonctionnalité et la qualité de son fonctionnement.
Graphiques Vectoriels Scalables (SVG) est une famille de spécifications d’un format de fichier basé sur XML pour des graphiques vectoriels bidimensionnels, à la fois statiques et dynamiques (interactifs ou animés). La spécification SVG est une norme ouverte qui est en cours de développement par le World Wide Web Consortium (W3C) depuis 1999.
Les images SVG et leurs comportements sont définis dans des fichiers texte XML. Cela signifie qu’ils peuvent être recherchés, indexés, scriptés et, si nécessaire, compressés. En tant que fichiers XML, les images SVG peuvent être créées et éditées avec n’importe quel éditeur de texte, mais il est souvent plus pratique de les créer avec des programmes de dessin tels qu’Inkscape.
Aspose.PDF pour .NET prend en charge la fonctionnalité de conversion d’images SVG en format PDF et offre également la capacité de convertir des fichiers PDF en format SVG. Aspose.PDF pour .NET prend en charge la fonctionnalité de conversion d’une image SVG en format PDF et offre également la capacité de convertir des fichiers PDF en format SVG.
Le code suivant montre les étapes pour convertir un fichier PDF en format SVG avec .NET.
Étapes : Convertir PDF en SVG en C#
- Créez un objet de la classe Document.
- Créez un objet SvgSaveOptions avec les paramètres nécessaires.
- Appelez la méthode Document.Save() et passez-lui l’objet SvgSaveOptions pour convertir le document PDF en SVG.
public static void ConvertPDFtoSVG()
{
// Charger le document PDF
Document document = new Document(System.IO.Path.Combine(_dataDir, "input.pdf"));
// Instancier un objet de SvgSaveOptions
SvgSaveOptions saveOptions = new SvgSaveOptions
{
// Ne pas compresser l'image SVG en archive Zip
CompressOutputToZipArchive = false,
TreatTargetFileNameAsDirectory = true
};
// Sauvegarder la sortie en fichiers SVG
document.Save(System.IO.Path.Combine(_dataDir, "PDFToSVG_out.svg"), saveOptions);
}