Converter PDF para formatos de imagem em Python

Python Converter PDF para Imagem

Aspose.PDF for Python via .NET suporta várias maneiras de converter o conteúdo de PDF em imagens. Na prática, a maioria dos fluxos de trabalho usa uma das duas opções:

  • a abordagem Device para renderizar páginas PDF em formatos de imagem raster
  • a abordagem SaveOptions para exportar conteúdo PDF para SVG

Este artigo mostra como converter arquivos PDF para TIFF, BMP, EMF, JPEG, PNG, GIF e SVG.

A biblioteca inclui várias classes de renderização. DocumentDevice é projetado para conversão de documento inteiro, enquanto ImageDevice visa páginas individuais.

Converter PDF usando a classe DocumentDevice

Use DocumentDevice quando você deseja renderizar o PDF inteiro em um único arquivo TIFF multipágina.

O TiffDevice classe é baseada em DocumentDevice e fornece o process método para converter todas as páginas de um arquivo PDF em uma única saída TIFF.

Converter páginas PDF em uma única imagem TIFF

Aspose.PDF for Python via .NET pode renderizar cada página de um arquivo PDF em uma imagem TIFF.

Passos: Converter PDF para TIFF em Python

  1. Carregue o PDF de origem com o Document classe.
  2. Criar TiffSettings e TiffDevice objetos.
  3. Configure as opções TIFF, como compressão, profundidade de cor e tratamento de páginas em branco.
  4. Chame o process método para gravar o arquivo TIFF.

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

import aspose.pdf as ap
from io import FileIO
from os import path
import sys

def convert_PDF_to_TIFF(infile, outfile):
    document = ap.Document(infile)

    resolution = ap.devices.Resolution(300)
    tiffSettings = ap.devices.TiffSettings()
    tiffSettings.compression = ap.devices.CompressionType.LZW
    tiffSettings.depth = ap.devices.ColorDepth.DEFAULT
    tiffSettings.skip_blank_pages = False

    tiffDevice = ap.devices.TiffDevice(resolution, tiffSettings)
    tiffDevice.process(document, f"{outfile}.tiff")

    print(infile + " converted into " + outfile)

Converter PDF usando a classe ImageDevice

Use ImageDevice quando você precisa de saída página por página em um formato de imagem raster.

ImageDevice é a classe base para BmpDevice, JpegDevice, GifDevice, PngDevice, e EmfDevice.

  • O BmpDevice A classe permite converter páginas PDF em imagens BMP.
  • O EmfDevice A classe permite converter páginas de PDF em imagens EMF.
  • O JpegDevice classe permite converter páginas de PDF em imagens JPEG.
  • O PngDevice classe permite que você converta páginas PDF em imagens PNG.
  • O GifDevice classe permite converter páginas PDF em imagens GIF.

O fluxo de trabalho é o mesmo para cada formato: carregue o documento, crie o dispositivo apropriado e, em seguida, processe a página necessária.

BmpDevice expõe o processo método para renderizar uma página específica como BMP. As outras classes de dispositivo de imagem seguem o mesmo padrão, portanto você pode mudar os formatos alterando a classe de dispositivo.

Os links e exemplos de código a seguir mostram como renderizar páginas de PDF para formatos de imagem comuns:

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

  1. Carregue o arquivo PDF com o Document classe.
  2. Crie uma instância do necessário ImageDevice subclasse:
  3. Percorra as páginas que você deseja exportar.
  4. Chame o ImageDevice.process() método para salvar cada página como uma imagem.

Converter PDF para BMP

import aspose.pdf as ap
from io import FileIO
from os import path
import sys

def convert_PDF_to_BMP(infile, outfile):
    document = ap.Document(infile)
    resolution = ap.devices.Resolution(300)
    device = ap.devices.BmpDevice(resolution)
    page_count = 1
    while page_count <= len(document.pages):
        image_stream = FileIO(outfile + str(page_count) + "_out.bmp", "w")
        device.process(document.pages[page_count], image_stream)
        image_stream.close()
        page_count = page_count + 1

    print(infile + " converted into " + outfile)

Converter PDF para EMF

import aspose.pdf as ap
from io import FileIO
from os import path
import sys

def convert_PDF_to_EMF(infile, outfile):
    document = ap.Document(infile)
    resolution = ap.devices.Resolution(300)
    device = ap.devices.EmfDevice(resolution)
    page_count = 1
    while page_count <= len(document.pages):
        image_stream = FileIO(outfile + str(page_count) + "_out.emf", "w")
        device.process(document.pages[page_count], image_stream)
        image_stream.close()
        page_count = page_count + 1

    print(infile + " converted into " + outfile)

Converter PDF para JPEG

import aspose.pdf as ap
from io import FileIO
from os import path
import sys

def convert_PDF_to_JPEG(infile, outfile):
    document = ap.Document(infile)
    resolution = ap.devices.Resolution(300)
    device = ap.devices.JpegDevice(resolution)
    page_count = 1

    while page_count <= len(document.pages):
        image_stream = FileIO(outfile + str(page_count) + "_out.jpeg", "w")
        device.process(document.pages[page_count], image_stream)
        image_stream.close()
        page_count = page_count + 1

    print(infile + " converted into " + outfile)

Converter PDF para PNG

import aspose.pdf as ap
from io import FileIO
from os import path
import sys

def convert_PDF_to_PNG(infile, outfile):
    document = ap.Document(infile)
    resolution = ap.devices.Resolution(300)

    device = ap.devices.PngDevice(resolution)
    page_count = 1
    while page_count <= len(document.pages):
        image_stream = FileIO(outfile + str(page_count) + "_out.png", "w")
        device.process(document.pages[page_count], image_stream)
        image_stream.close()
        page_count = page_count + 1

Converter PDF para PNG com fonte padrão

import aspose.pdf as ap
from io import FileIO
from os import path
import sys

def convert_PDF_to_PNG_with_default_font(infile, outfile):
    document = ap.Document(infile)
    resolution = ap.devices.Resolution(300)

    rendering_options = ap.RenderingOptions()
    rendering_options.default_font_name = "Arial"

    device = ap.devices.PngDevice(resolution)
    device.rendering_options = rendering_options

    page_count = 1
    while page_count <= len(document.pages):
        image_stream = FileIO(outfile + str(page_count) + "_out.png", "w")
        device.process(document.pages[page_count], image_stream)
        image_stream.close()
        page_count = page_count + 1

Converter PDF para GIF

import aspose.pdf as ap
from io import FileIO
from os import path
import sys

def convert_PDF_to_GIF(infile, outfile):
    document = ap.Document(infile)
    resolution = ap.devices.Resolution(300)
    device = ap.devices.GifDevice(resolution)
    page_count = 1
    while page_count <= len(document.pages):
        image_stream = FileIO(outfile + str(page_count) + "_out.gif", "w")
        device.process(document.pages[page_count], image_stream)
        image_stream.close()
        page_count = page_count + 1

    print(infile + " converted into " + outfile)

Converter PDF usando a classe SaveOptions

Use SaveOptions quando você quiser exportar o conteúdo do PDF para SVG.

Scalable Vector Graphics (SVG) é um formato baseado em XML para gráficos vetoriais bidimensionais. Como o SVG continua sendo baseado em vetores, ele é útil quando você precisa de saída escalável para web, UI ou fluxos de trabalho de design.

Os arquivos SVG são baseados em texto, pesquisáveis e fáceis de pós-processar em outras ferramentas.

Aspose.PDF for Python via .NET pode tanto converter SVG para PDF quanto exportar páginas de PDF para SVG. Para a conversão de PDF para SVG, crie um SvgSaveOptions objeto e passá-lo para o document.save() método.

Os passos a seguir mostram como converter um arquivo PDF para SVG com Python.

Passos: Converter PDF para SVG em Python

  1. Carregue o PDF de origem usando o Document classe.
  2. Criar um SvgSaveOptions objeto e configure as opções necessárias.
  3. Chame o document.save() método com o SvgSaveOptions instância para escrever a saída SVG.

Converter PDF para SVG

import aspose.pdf as ap
from io import FileIO
from os import path
import sys

def convert_PDF_to_SVG(infile, outfile):
    document = ap.Document(infile)

    save_options = ap.SvgSaveOptions()
    save_options.compress_output_to_zip_archive = False
    save_options.treat_target_file_name_as_directory = True

    document.save(f"{outfile}.svg", save_options)

Conversões relacionadas