Converter PDF para Diferentes Formatos de Imagem em Python

Visão Geral

Este artigo explica como converter PDF para diferentes formatos de imagem usando Python. Ele cobre os seguintes tópicos.

Formato de Imagem: TIFF

Formato de Imagem: BMP

Formato de Imagem: EMF

Formato de Imagem: JPG

Formato de Imagem: PNG

Formato de Imagem: GIF

Formato de Imagem: SVG

Python Converter PDF para Imagem

Aspose.PDF para Python usa várias abordagens para converter PDF em imagem. Geralmente falando, usamos duas abordagens: conversão usando a abordagem Device e conversão usando SaveOption. Esta seção mostrará como converter documentos PDF para formatos de imagem, como BMP, JPEG, GIF, PNG, EMF, TIFF e SVG usando uma dessas abordagens.

Existem várias classes na biblioteca que permitem usar um dispositivo virtual para transformar imagens. DocumentDevice é orientado para a conversão de todo o documento, mas ImageDevice - para uma página específica.

Converter PDF usando a classe DocumentDevice

Aspose.PDF para Python possibilita converter Páginas PDF para imagens TIFF.

A classe TiffDevice (baseada em DocumentDevice) permite converter páginas PDF para imagens TIFF. Esta classe fornece um método chamado process que permite converter todas as páginas de um arquivo PDF em uma única imagem TIFF.

Converter Páginas de PDF para Uma Imagem TIFF

Aspose.PDF para Python explica como converter todas as páginas em um arquivo PDF para uma única imagem TIFF:

Passos: Converter PDF para TIFF em Python

  1. Crie um objeto da classe Document.

  2. Crie objetos TiffSettings e TiffDevice

  3. Chame o método process para converter o documento PDF para TIFF.

  4. Para definir as propriedades do arquivo de saída, use a classe TiffSettings.

O seguinte trecho de código mostra como converter todas as páginas do PDF em uma única imagem TIFF.


    import aspose.pdf as ap

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

    # Crie um objeto Resolution
    resolution = ap.devices.Resolution(300)

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

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

    # Converta uma página específica e salve a imagem no fluxo
    tiffDevice.process(document, output_pdf)

Converter PDF usando a classe ImageDevice

ImageDevice é o ancestral de BmpDevice, JpegDevice, GifDevice, PngDevice e EmfDevice.

  • A classe BmpDevice permite converter páginas PDF em imagens BMP.

  • A classe EmfDevice permite converter páginas PDF em imagens EMF.

  • A classe JpegDevice permite converter páginas PDF em imagens JPEG.

  • A classe PngDevice permite converter páginas PDF em imagens PNG.

  • A classe GifDevice permite converter páginas PDF em imagens GIF.

Vamos dar uma olhada em como converter uma página PDF em uma imagem.

A classe BmpDevice fornece um método chamado process, que permite converter uma página específica do arquivo PDF para o formato de imagem BMP. As outras classes têm o mesmo método. Portanto, se precisarmos converter uma página PDF em uma imagem, basta instanciarmos a classe necessária.

Os seguintes passos e trecho de código em Python mostram essa possibilidade

Passos: PDF para Imagem (BMP, EMF, JPG, PNG, GIF) em Python

  1. Carregue o arquivo PDF usando a classe Document.
  2. Crie uma instância da subclasse de ImageDevice, ou seja,
  3. Chame o método ImageDevice.Process() para realizar a conversão de PDF para Imagem.

Converter PDF para 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)

    # Criar objeto de Resolução
    resolution = ap.devices.Resolution(300)
    device = ap.devices.BmpDevice(resolution)

    for i in range(0, len(document.pages)):
        # Criar arquivo para salvar
        imageStream = io.FileIO(
            output_pdf + "_page_" + str(i + 1) + "_out.bmp", 'x'
        )
        # Converter uma página específica e salvar a imagem no stream
        device.process(document.pages[i + 1], imageStream)
        imageStream.close()

Converter PDF para 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)

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

    for i in range(0, len(document.pages)):
        # Criar arquivo para salvar
        imageStream = io.FileIO(
            output_pdf + "_page_" + str(i + 1) + "_out.emf", 'x'
        )
        # Converter uma página específica e salvar a imagem no stream
        device.process(document.pages[i + 1], imageStream)
        imageStream.close()

Converter PDF para 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)

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

    for i in range(0, len(document.pages)):
        # Criar arquivo para salvar
        imageStream = io.FileIO(
            output_pdf + "_page_" + str(i + 1) + "_out.jpeg", "x"
        )
        # Converter uma página específica e salvar a imagem no stream
        device.process(document.pages[i + 1], imageStream)
        imageStream.close()  

Converter PDF para 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)

    # Criar objeto de Resolução
    resolution = ap.devices.Resolution(300)
    device = ap.devices.PngDevice(resolution)

    for i in range(0, len(document.pages)):
        # Criar arquivo para salvar
        imageStream = io.FileIO(
            output_pdf + "_page_" + str(i + 1) + "_out.png", 'x'
        )
        # Converter uma página específica e salvar a imagem no stream
        device.process(document.pages[i + 1], imageStream)
        imageStream.close()

Converter PDF para 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)

    # Criar objeto de Resolução
    resolution = ap.devices.Resolution(300)

    device = ap.devices.GifDevice(resolution)

    for i in range(0, len(document.pages)):
        # Criar arquivo para salvar
        imageStream = io.FileIO(
            output_pdf + "_page_" + str(i + 1) + "_out.gif", 'x'
        )
        # Converter uma página específica e salvar a imagem no stream
        device.process(document.pages[i + 1], imageStream)
        # Fechar stream
        imageStream.close()  

Converter PDF usando a classe SaveOptions

Esta parte do artigo mostra como converter PDF para SVG usando Python e a classe SaveOptions.

Scalable Vector Graphics (SVG) é uma família de especificações de um formato de arquivo baseado em XML para gráficos vetoriais bidimensionais, tanto estáticos quanto dinâmicos (interativos ou animados). A especificação SVG é um padrão aberto que está em desenvolvimento pelo World Wide Web Consortium (W3C) desde 1999.

As imagens SVG e seus comportamentos são definidos em arquivos de texto XML. Isso significa que eles podem ser pesquisados, indexados, scriptados e, se necessário, comprimidos. Como arquivos XML, as imagens SVG podem ser criadas e editadas com qualquer editor de texto, mas é frequentemente mais conveniente criá-las com programas de desenho como o Inkscape.

Aspose.PDF para Python suporta o recurso de converter imagens SVG para o formato PDF e também oferece a capacidade de converter arquivos PDF para o formato SVG. Para cumprir esse requisito, a classe SvgSaveOptions foi introduzida no namespace Aspose.PDF. Instancie um objeto de SvgSaveOptions e passe-o como segundo argumento para o método Document.Save().

O trecho de código a seguir mostra os passos para converter um arquivo PDF para o formato SVG com Python.

Passos: Converter PDF para SVG em Python

  1. Crie um objeto da classe Document.
  2. Crie um objeto SvgSaveOptions com as configurações necessárias.
  3. Chame o método Document.Save() e passe o objeto SvgSaveOptions para converter o documento PDF em SVG.

Converter PDF para 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 um objeto de SvgSaveOptions
    saveOptions = ap.SvgSaveOptions()

    # Não comprimir imagem SVG para arquivo Zip
    saveOptions.compress_output_to_zip_archive = False
    saveOptions.treat_target_file_name_as_directory = True

    # Salvar a saída em arquivos SVG
    document.save(output_pdf, saveOptions)