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 for Python utiliza varios enfoques para convertir PDF a imagen. Generalmente hablando, usamos dos enfoques: conversión usando el enfoque Device y conversión usando SaveOption. Esta sección le mostrará cómo convertir documentos PDF a formatos de imagen como BMP, JPEG, GIF, PNG, EMF, TIFF y SVG utilizando uno de esos enfoques.

Hay varias clases en la biblioteca que le 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 particular.

Convertir PDF usando la clase DocumentDevice

Aspose.PDF para Python hace posible convertir páginas PDF a imágenes TIFF.

La clase TiffDevice (basada en DocumentDevice) le permite convertir páginas PDF a imágenes TIFF. Esta clase proporciona un método llamado process que le 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 de un archivo PDF a una sola imagen TIFF:

Pasos: Convertir PDF a TIFF en Python

  1. Crea un objeto de la clase Document.

  2. Crea objetos TiffSettings y TiffDevice.

  3. Llame al método process para convertir el documento PDF a TIFF.

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

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


    import aspose.pdf as ap

    input_pdf = DIR_INPUT + "sample.pdf"
    output_pdf = DIR_OUTPUT + "convert_pdf_to_tiff.tiff"
    # Abrir documento PDF
    document = ap.Document(input_pdf)

    # Crear objeto Resolution
    resolution = ap.devices.Resolution(300)

    # Crear objeto TiffSettings
    tiffSettings = ap.devices.TiffSettings()
    tiffSettings.compression = ap.devices.CompressionType.LZW
    tiffSettings.depth = ap.devices.ColorDepth.DEFAULT
    tiffSettings.skip_blank_pages = False

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

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

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 de PDF a una imagen.

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

Los siguientes pasos y fragmentos 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


    import aspose.pdf as ap

    input_pdf = DIR_INPUT + "many_pages.pdf"
    output_pdf = DIR_OUTPUT + "convert_pdf_to_bmp"
    # Abrir documento PDF
    document = ap.Document(input_pdf)

    # Crear objeto Resolution
    resolution = ap.devices.Resolution(300)
    device = ap.devices.BmpDevice(resolution)

    for i in range(0, len(document.pages)):
        # Crear archivo para guardar
        imageStream = io.FileIO(
            output_pdf + "_page_" + str(i + 1) + "_out.bmp", 'x'
        )
        # Convertir una página en particular y guardar la imagen en el flujo
        device.process(document.pages[i + 1], imageStream)
        imageStream.close()

Convertir PDF a EMF


    import aspose.pdf as ap

    input_pdf = DIR_INPUT + "sample.pdf"
    output_pdf = DIR_OUTPUT + "convert_pdf_to_emf"
    # Abrir documento PDF
    document = ap.Document(input_pdf)

    # Crear objeto Resolution
    resolution = ap.devices.Resolution(300)
    device = ap.devices.EmfDevice(resolution)

    for i in range(0, len(document.pages)):
        # Crear archivo para guardar
        imageStream = io.FileIO(
            output_pdf + "_page_" + str(i + 1) + "_out.emf", 'x'
        )
        # Convertir una página particular y guardar la imagen en el flujo
        device.process(document.pages[i + 1], imageStream)
        imageStream.close()

Convertir PDF a JPEG


    import aspose.pdf as ap

    input_pdf = DIR_INPUT + "many_pages.pdf"
    output_pdf = DIR_OUTPUT + "convert_pdf_to_jpeg"
    # Abrir documento PDF
    document = ap.Document(input_pdf)

    # Crear objeto Resolution
    resolution = ap.devices.Resolution(300)
    device = ap.devices.JpegDevice(resolution)

    for i in range(0, len(document.pages)):
        # Crear archivo para guardar
        imageStream = io.FileIO(
            output_pdf + "_page_" + str(i + 1) + "_out.jpeg", "x"
        )
        # Convertir una página particular y guardar la imagen en el flujo
        device.process(document.pages[i + 1], imageStream)
        imageStream.close()  

Convertir PDF a PNG


    import aspose.pdf as ap

    input_pdf = DIR_INPUT + "sample.pdf"
    output_pdf = DIR_OUTPUT + "convert_pdf_to_png"
    # Abrir documento PDF
    document = ap.Document(input_pdf)

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

    for i in range(0, len(document.pages)):
        # Crear archivo para guardar
        imageStream = io.FileIO(
            output_pdf + "_page_" + str(i + 1) + "_out.png", 'x'
        )
        # Convertir una página en particular y guardar la imagen en el flujo
        device.process(document.pages[i + 1], imageStream)
        imageStream.close()

Convertir PDF a GIF


    import aspose.pdf as ap

    input_pdf = DIR_INPUT + "many_pages.pdf"
    output_pdf = DIR_OUTPUT + "convert_pdf_to_gif"
    # Abrir documento PDF
    document = ap.Document(input_pdf)

    # Crear objeto de resolución
    resolution = ap.devices.Resolution(300)

    device = ap.devices.GifDevice(resolution)

    for i in range(0, len(document.pages)):
        # Crear archivo para guardar
        imageStream = io.FileIO(
            output_pdf + "_page_" + str(i + 1) + "_out.gif", 'x'
        )
        # Convertir una página en particular y guardar la imagen en el flujo
        device.process(document.pages[i + 1], imageStream)
        # Cerrar flujo
        imageStream.close()  

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.

Scalable Vector Graphics (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 se definen 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 la configuración necesaria.
  3. Llame al método Document.Save() y pase el objeto SvgSaveOptions para convertir el documento PDF a SVG.

Convertir PDF a SVG


    import aspose.pdf as ap

    input_pdf = DIR_INPUT + "sample.pdf"
    output_pdf = DIR_OUTPUT + "convert_pdf_to_svg.svg"
    # Abrir documento PDF
    document = ap.Document(input_pdf)

    # Instanciar un objeto de SvgSaveOptions
    saveOptions = ap.SvgSaveOptions()

    # No comprimir la imagen SVG en un archivo Zip
    saveOptions.compress_output_to_zip_archive = False
    saveOptions.treat_target_file_name_as_directory = True

    # Guardar la salida en archivos SVG
    document.save(output_pdf, saveOptions)