Convertir PDF a Diferentes Formatos de Imagen en C#
Visión General
Este artículo explica cómo convertir PDF a diferentes formatos de imagen usando C#. Cubre los siguientes temas.
Formato de Imagen: TIFF
Formato de Imagen: BMP
Formato de Imagen: EMF
Formato de Imagen: JPG
Formato de Imagen: PNG
Formato de Imagen: GIF
Formato de Imagen: SVG
C# Convertir PDF a Imagen
El siguiente fragmento de código también funciona con la biblioteca Aspose.PDF.Drawing.
Aspose.PDF para .NET utiliza varios enfoques para convertir un PDF a imagen. Aspose.PDF para .NET utiliza varios enfoques para convertir PDF a imagen.
Hay varias clases en la biblioteca que permiten usar un dispositivo virtual para transformar imágenes. DocumentDevice está orientado para la conversión de todo el documento, pero ImageDevice - para una página en particular.
Convertir PDF usando la clase DocumentDevice
Aspose.PDF para .NET hace posible convertir páginas PDF a imágenes TIFF.
La clase TiffDevice (basada en DocumentDevice) te permite convertir páginas PDF a imágenes TIFF. Esta clase proporciona un método llamado Process
que te permite convertir todas las páginas en un archivo PDF a una sola imagen TIFF.
Intenta convertir PDF a TIFF en línea
Aspose.PDF para .NET te presenta la aplicación gratuita en línea “PDF to TIFF”, donde puedes probar a investigar la funcionalidad y calidad con la que funciona.
Convertir páginas de PDF a una imagen TIFF
Aspose.PDF para .NET explica cómo convertir todas las páginas de un archivo PDF en una única imagen TIFF:
Pasos: Convertir PDF a TIFF en C#
- Crear un objeto de la clase Document.
- Crear objetos TiffSettings y TiffDevice.
- Llamar al método TiffDevice.Process() para convertir el documento PDF a TIFF.
- Para establecer las propiedades del archivo de salida, usar la clase TiffSettings.
El siguiente fragmento de código muestra cómo convertir todas las páginas del PDF en una única imagen TIFF.
public static void ConvertPDFtoTIFF()
{
// Abrir documento
Document pdfDocument = new Document(_dataDir + "PageToTIFF.pdf");
// Crear objeto Resolution
Resolution resolution = new Resolution(300);
// Crear objeto TiffSettings
TiffSettings tiffSettings = new TiffSettings
{
Compression = CompressionType.None,
Depth = ColorDepth.Default,
Shape = ShapeType.Landscape,
SkipBlankPages = false
};
// Crear dispositivo TIFF
TiffDevice tiffDevice = new TiffDevice(resolution, tiffSettings);
// Convertir una página en particular y guardar la imagen en stream
tiffDevice.Process(pdfDocument, _dataDir + "AllPagesToTIFF_out.tif");
}
Convertir una página a imagen TIFF
Aspose.PDF para .NET permite convertir una página específica de un archivo PDF a imagen TIFF, utiliza una versión sobrecargada del método Process(..) que toma un número de página como argumento para la conversión. El siguiente fragmento de código muestra cómo convertir la primera página de un PDF a formato TIFF.
Pasos: Convertir Páginas Individuales o Específicas de PDF a TIFF en C#
- Crear un objeto de la clase Document.
- Crear objetos TiffSettings y TiffDevice
- Llamar al método sobrecargado TiffDevice.Process() con los parámetros fromPage y toPage para convertir las páginas del documento PDF a TIFF.
public static void ConvertPDFtoTiffSinglePage()
{
// Abrir documento
Document pdfDocument = new Document(_dataDir + "PageToTIFF.pdf");
// Crear objeto Resolution
Resolution resolution = new Resolution(300);
// Crear objeto TiffSettings
TiffSettings tiffSettings = new TiffSettings
{
Compression = CompressionType.None,
Depth = ColorDepth.Default,
Shape = ShapeType.Landscape,
};
// Crear dispositivo TIFF
TiffDevice tiffDevice = new TiffDevice(resolution, tiffSettings);
// Convertir una página específica y guardar la imagen en stream
tiffDevice.Process(pdfDocument, 1, 1, _dataDir + "PageToTIFF_out.tif");
}
Utiliza el algoritmo de Bradley durante la conversión
Aspose.PDF para .NET ha estado soportando la función de convertir PDF a TIF usando compresión LZW y luego con el uso de AForge, se puede aplicar la Binarización. Sin embargo, uno de los clientes solicitó que para algunas imágenes, necesitan obtener el Umbral usando Otsu, por lo que también les gustaría usar Bradley.
public static void ConvertPDFtoTiffBradleyBinarization()
{
// Abrir documento
Document pdfDocument = new Document(_dataDir + "PageToTIFF.pdf");
string outputImageFile = _dataDir + "resultant_out.tif";
string outputBinImageFile = _dataDir + "37116-bin_out.tif";
// Crear objeto Resolution
Resolution resolution = new Resolution(300);
// Crear objeto TiffSettings
TiffSettings tiffSettings = new TiffSettings
{
Compression = CompressionType.LZW,
Depth = Aspose.Pdf.Devices.ColorDepth.Format1bpp
};
// Crear dispositivo TIFF
TiffDevice tiffDevice = new TiffDevice(resolution, tiffSettings);
// Convertir una página en particular y guardar la imagen en stream
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 PDF usando la clase ImageDevice
ImageDevice
es el ancestro de BmpDevice
, JpegDevice
, GifDevice
, PngDevice
y EmfDevice
.
- La clase BmpDevice te permite convertir páginas PDF a imágenes BMP.
- La clase EmfDevice te permite convertir páginas PDF a imágenes EMF.
- La clase JpegDevice te permite convertir páginas PDF a imágenes JPEG.
- La clase PngDevice te permite convertir páginas PDF a imágenes PNG.
- La clase GifDevice te permite convertir páginas PDF a imágenes GIF.
Vamos a ver cómo convertir una página de PDF a una imagen. Vamos a ver cómo convertir una página de PDF en una imagen.
La clase BmpDevice
proporciona un método llamado Process que permite convertir una página específica del archivo PDF al formato de imagen BMP. Las otras clases tienen el mismo método. Por lo tanto, si necesitamos convertir una página de PDF a una imagen, simplemente instanciamos la clase requerida.
Los siguientes pasos y fragmento de código en C# muestran esta posibilidad
- Convertir PDF a BMP en C#
- Convertir PDF a EMF en C#
- Convertir PDF a JPG en C#
- Convertir PDF a PNG en C#
- Convertir PDF a GIF en C#
Pasos: PDF a Imagen (BMP, EMF, JPG, PNG, GIF) en C#
- Crea una instancia de una subclase de ImageDevice, es decir:
- BmpDevice (para convertir PDF a BMP)
- EmfDevice (para convertir PDF a Emf)
- JpegDevice (para convertir PDF a JPG)
- PngDevice (para convertir PDF a PNG)
- GifDevice (para convertir PDF a GIF)
- Llama al método ImageDevice.Process() para realizar la conversión de PDF a imagen.
public static class ExampleConvertPdfToImage
{
private static readonly string _dataDir = @"C:\Samples\";
// BMP, JPEG, GIF, PNG, EMF
public static void ConvertPDFusingImageDevice()
{
// Crear objeto 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 una página en particular y guardar la imagen en el stream
imageDevice.Process(pdfDocument.Pages[pageCount], imageStream);
// Cerrar stream
imageStream.Close();
}
}
}
Intenta convertir PDF a PNG en línea
Como un ejemplo de cómo funcionan nuestras aplicaciones gratuitas, por favor revisa la siguiente característica.
Aspose.PDF para .NET te presenta la aplicación gratuita en línea “PDF a PNG”, donde puedes investigar la funcionalidad y calidad con la que trabaja.
Convertir PDF utilizando la clase SaveOptions
Esta parte del artículo te muestra cómo convertir PDF a SVG usando C# y la clase SaveOptions.
Gráficos Vectoriales Escalables (SVG) es una familia de especificaciones de un formato de archivo basado en XML para gráficos vectoriales bidimensionales, tanto estáticos como dinámicos (interactivos o animados). La especificación SVG es un estándar abierto que ha sido desarrollado por el Consorcio World Wide Web (W3C) desde 1999.
Las imágenes SVG y sus comportamientos se definen en archivos de texto XML. Esto significa que pueden ser buscados, indexados, scriptados y, si es necesario, comprimidos. Como archivos XML, las imágenes SVG pueden ser creadas y editadas con cualquier editor de texto, aunque a menudo es más conveniente crearlas con programas de dibujo como Inkscape.
Aspose.PDF para .NET soporta la característica de convertir imágenes SVG a formato PDF y también ofrece la capacidad de convertir archivos PDF a formato SVG. Aspose.PDF para .NET soporta la funcionalidad de convertir imágenes SVG a formato PDF y también ofrece la capacidad de convertir archivos PDF a formato SVG.
El siguiente fragmento de código muestra los pasos para convertir un archivo PDF a formato SVG con .NET.
Pasos: Convertir PDF a SVG en C#
- Crear un objeto de la clase Document.
- Crear un objeto SvgSaveOptions con las configuraciones necesarias.
- Llamar al método Document.Save() y pasarle el objeto SvgSaveOptions para convertir el documento PDF a SVG.
public static void ConvertPDFtoSVG()
{
// Cargar documento PDF
Document document = new Document(System.IO.Path.Combine(_dataDir, "input.pdf"));
// Instanciar un objeto de SvgSaveOptions
SvgSaveOptions saveOptions = new SvgSaveOptions
{
// No comprimir la imagen SVG en archivo Zip
CompressOutputToZipArchive = false,
TreatTargetFileNameAsDirectory = true
};
// Guardar la salida en archivos SVG
document.Save(System.IO.Path.Combine(_dataDir, "PDFToSVG_out.svg"), saveOptions);
}