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 abrange 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 conversão de documento inteiro, 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 em imagens TIFF. Esta classe fornece um método chamado Process que permite converter todas as páginas em um arquivo PDF para uma única imagem TIFF.

Converter Páginas 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 TiffDevice.Process() para converter o documento PDF para TIFF.

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

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



from asposepdf import Api, Device

# inicializar licença
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)
# Criar objeto Resolution
resolution = Device.Resolution(300)

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

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

# Converter uma página específica e salvar a imagem no fluxo
tiffDevice.process(document, output_image)

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 para 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 possuem o mesmo método. Portanto, se precisarmos converter uma página PDF para uma imagem, basta instanciar 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. Carregar o arquivo PDF usando a classe Document.
  2. Criar uma instância da subclasse de ImageDevice, ou seja,
  3. Chamar o método ImageDevice.Process() para realizar a conversão de PDF para Imagem.

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

# Criar objeto Resolution
resolution = Device.Resolution(300)
device = Device.BmpDevice(resolution)

for i in range(0, document.getPages.size):
    # Criar nome de arquivo para salvar
    imageFileName = output_pdf + "_page_" + str(i + 1) + "_out.bmp"
    # Converter uma página específica e salvar a imagem no arquivo
    device.process(document.getPages.getPage(i + 1), outputFileName=imageFileName)

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

# Criar objeto de Resolução
resolution = Device.Resolution(300)
device = Device.EmfDevice(resolution)

for i in range(0, document.getPages.size):
    # Criar nome de arquivo para salvar
    imageFileName = output_pdf + "_page_" + str(i + 1) + "_out.emf"
    # Converter uma página específica e salvar a imagem no arquivo
    device.process(document.getPages.getPage(i + 1), outputFileName=imageFileName)

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

# Criar objeto de Resolução
resolution = Device.Resolution(300)
device = Device.JpegDevice(resolution)

for i in range(0, document.getPages.size):
    # Criar nome de arquivo para salvar
    imageFileName = output_pdf + "_page_" + str(i + 1) + "_out.jpeg"
    # Converter uma página específica e salvar a imagem no arquivo
    device.process(document.getPages.getPage(i + 1), outputFileName=imageFileName)

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

# Criar objeto Resolution
resolution = Device.Resolution(300)
device = Device.PngDevice(resolution)

for i in range(0, document.getPages.size):
    # Criar nome de arquivo para salvar
    imageFileName = output_pdf + "_page_" + str(i + 1) + "_out.png"
    # Converter uma página específica e salvar a imagem no arquivo
    device.process(document.getPages.getPage(i + 1), outputFileName=imageFileName)

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

# Criar objeto Resolution
resolution = Device.Resolution(300)
device = Device.GifDevice(resolution)

for i in range(0, document.getPages.size):
    # Criar nome de arquivo para salvar
    imageFileName = output_pdf + "_page_" + str(i + 1) + "_out.gif"
    # Converter uma página específica e salvar a imagem no arquivo
    device.process(document.getPages.getPage(i + 1), outputFileName=imageFileName)

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.

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

Aspose.PDF para Python suporta o recurso de converter imagem SVG para formato PDF e também oferece a capacidade de converter arquivos PDF para formato SVG. Para cumprir este 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 seguinte trecho de código 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


from asposepdf import Api

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