Convertir PDF a Diferentes Formatos de Imagen en Python

Visión General

Este artículo explica cómo convertir PDF a diferentes formatos de imagen usando Python. 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

Python Convertir PDF a Imagen

Aspose.PDF para Python utiliza varios enfoques para convertir PDF a imagen. Generalmente hablando, usamos dos enfoques: conversión usando el enfoque de Dispositivo y conversión usando SaveOption. Esta sección te mostrará cómo convertir documentos PDF a formatos de imagen como BMP, JPEG, GIF, PNG, EMF, TIFF y SVG usando uno de esos enfoques.

Hay varias clases en la biblioteca que te permiten usar un dispositivo virtual para transformar imágenes. DocumentDevice está orientado a la conversión de todo el documento, pero ImageDevice - para una página en particular.

Convertir PDF usando la clase DocumentDevice

Aspose.PDF para Python hace posible convertir páginas de 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.

Convertir Páginas de PDF a Una Imagen TIFF

Aspose.PDF para Python explica cómo convertir todas las páginas en un archivo PDF a una sola imagen TIFF:

Pasos: Convertir PDF a TIFF en Python

  1. Crear un objeto de la clase Document.

  2. Crear objetos TiffSettings y TiffDevice

  3. Llama al método TiffDevice.Process() para convertir el documento PDF a TIFF.

  4. Para establecer las propiedades del archivo de salida, utiliza la clase TiffSettings.

El siguiente fragmento de código muestra cómo convertir todas las páginas del PDF en una sola imagen TIFF.

from asposepdf import Api, Device

# inicializar licencia
documentName = "testdata/license/Aspose.PDF.PythonviaJava.lic"
licenseObject = Api.License()
licenseObject.setLicense(documentName)

# Abrir documento PDF
DIR_INPUT = "testdata/"
DIR_OUTPUT = "testout/"
input_pdf = DIR_INPUT + "source.pdf"
output_image = DIR_OUTPUT + "image.tiff"
# Abrir documento PDF
document = Api.Document(input_pdf)
# Crear objeto Resolution
resolution = Device.Resolution(300)

# Crear objeto TiffSettings
tiffSettings = Device.TiffSettings()
tiffSettings._CompressionType = Device.CompressionType.LZW
tiffSettings._ColorDepth = Device.ColorDepth.Default
tiffSettings._Skip_blank_pages = False

# Crear dispositivo TIFF
tiffDevice = Device.TiffDevice(resolution, tiffSettings)

# Convertir una página en particular y guardar la imagen en el flujo
tiffDevice.process(document, output_image)

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.

Echemos un vistazo a cómo convertir una página PDF a una imagen.

La clase BmpDevice proporciona un método llamado Process que te permite convertir una página particular del archivo PDF al formato de imagen BMP. Las otras clases tienen el mismo método. Así que, si necesitamos convertir una página PDF a una imagen, simplemente instanciamos la clase requerida.

Los siguientes pasos y fragmento de código en Python muestran esta posibilidad

Pasos: PDF a Imagen (BMP, EMF, JPG, PNG, GIF) en Python

  1. Cargue el archivo PDF usando la clase Document.
  2. Cree una instancia de una subclase de ImageDevice, es decir,
  3. Llame al método ImageDevice.Process() para realizar la conversión de PDF a Imagen.

Convertir PDF a BMP


from asposepdf import Api, Device

DIR_INPUT = "testdata/"
DIR_OUTPUT = "testout/"

input_pdf = DIR_INPUT + "source.pdf"
output_pdf = DIR_OUTPUT + "image"
# Abrir documento PDF
document = Api.Document(input_pdf)

# Crear objeto de resolución
resolution = Device.Resolution(300)
device = Device.BmpDevice(resolution)

for i in range(0, document.getPages.size):
    # Crear nombre de archivo para guardar
    imageFileName = output_pdf + "_page_" + str(i + 1) + "_out.bmp"
    # Convertir una página particular y guardar la imagen en archivo
    device.process(document.getPages.getPage(i + 1), outputFileName=imageFileName)

Convertir PDF a EMF


from asposepdf import Api, Device

DIR_INPUT = "../../testdata/"
DIR_OUTPUT = "../../testout/"

input_pdf = DIR_INPUT + "source.pdf"
output_pdf = DIR_OUTPUT + "image"
# Abrir documento PDF
document = Api.Document(input_pdf)

# Crear objeto de Resolución
resolution = Device.Resolution(300)
device = Device.EmfDevice(resolution)

for i in range(0, document.getPages.size):
    # Crear nombre de archivo para guardar
    imageFileName = output_pdf + "_page_" + str(i + 1) + "_out.emf"
    # Convertir una página en particular y guardar la imagen en el archivo
    device.process(document.getPages.getPage(i + 1), outputFileName=imageFileName)

Convertir PDF a JPEG


from asposepdf import Api, Device

DIR_INPUT = "../../testdata/"
DIR_OUTPUT = "../../testout/"

input_pdf = DIR_INPUT + "source.pdf"
output_pdf = DIR_OUTPUT + "image"
# Abrir documento PDF
document = Api.Document(input_pdf)

# Crear objeto de Resolución
resolution = Device.Resolution(300)
device = Device.JpegDevice(resolution)

for i in range(0, document.getPages.size):
    # Crear nombre de archivo para guardar
    imageFileName = output_pdf + "_page_" + str(i + 1) + "_out.jpeg"
    # Convertir una página en particular y guardar la imagen en el archivo
    device.process(document.getPages.getPage(i + 1), outputFileName=imageFileName)

Convertir PDF a PNG


from asposepdf import Api, Device

DIR_INPUT = "../../testdata/"
DIR_OUTPUT = "../../testout/"

input_pdf = DIR_INPUT + "source.pdf"
output_pdf = DIR_OUTPUT + "image"
# Abrir documento PDF
document = Api.Document(input_pdf)

# Crear objeto de resolución
resolution = Device.Resolution(300)
device = Device.PngDevice(resolution)

for i in range(0, document.getPages.size):
    # Crear nombre de archivo para guardar
    imageFileName = output_pdf + "_page_" + str(i + 1) + "_out.png"
    # Convertir una página particular y guardar la imagen en el archivo
    device.process(document.getPages.getPage(i + 1), outputFileName=imageFileName)

Convertir PDF a GIF


from asposepdf import Api, Device

DIR_INPUT = "../../testdata/"
DIR_OUTPUT = "../../testout/"

input_pdf = DIR_INPUT + "source.pdf"
output_pdf = DIR_OUTPUT + "image"
# Abrir documento PDF
document = Api.Document(input_pdf)

# Crear objeto de resolución
resolution = Device.Resolution(300)
device = Device.GifDevice(resolution)

for i in range(0, document.getPages.size):
    # Crear nombre de archivo para guardar
    imageFileName = output_pdf + "_page_" + str(i + 1) + "_out.gif"
    # Convertir una página particular y guardar la imagen en el archivo
    device.process(document.getPages.getPage(i + 1), outputFileName=imageFileName)

Convertir PDF usando la clase SaveOptions

Esta parte del artículo te muestra cómo convertir PDF a SVG usando Python 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 estado en desarrollo por el World Wide Web Consortium (W3C) desde 1999.

Las imágenes SVG y sus comportamientos están definidos en archivos de texto XML. Esto significa que pueden ser buscados, indexados, programados y, si es necesario, comprimidos. Como archivos XML, las imágenes SVG pueden ser creadas y editadas con cualquier editor de texto, pero a menudo es más conveniente crearlas con programas de dibujo como Inkscape.

Aspose.PDF para Python admite la función de convertir imágenes SVG al formato PDF y también ofrece la capacidad de convertir archivos PDF al formato SVG. Para cumplir con este requisito, la clase SvgSaveOptions ha sido introducida en el espacio de nombres Aspose.PDF. Instancie un objeto de SvgSaveOptions y páselo como segundo argumento al método Document.Save().

El siguiente fragmento de código muestra los pasos para convertir un archivo PDF a formato SVG con Python.

Pasos: Convertir PDF a SVG en Python

  1. Cree un objeto de la clase Document.
  2. Cree un objeto SvgSaveOptions con las configuraciones necesarias.
  3. Llame al método Document.Save() y páselo al objeto SvgSaveOptions para convertir el documento PDF a SVG.

Convertir PDF a SVG


from asposepdf import Api

documentName = "testdata/input.pdf"
doc = Api.Document(documentName, None)
documentOutName = "testout/out.svg"
doc.save(documentOutName, Api.SaveFormat.Svg)