Конвертировать PDF в форматы изображений в Python

Преобразование PDF в изображения в Python

Aspose.PDF for Python via .NET поддерживает несколько способов конвертации содержимого PDF в изображения. На практике большинство рабочих процессов использует один из двух вариантов:

  • подход Device для рендеринга страниц PDF в растровые форматы изображений
  • подход SaveOptions для экспорта содержимого PDF в SVG

В этой статье показано, как конвертировать PDF‑файлы в TIFF, BMP, EMF, JPEG, PNG, GIF и SVG.

Библиотека включает несколько классов рендеринга. DocumentDevice разработан для конвертации всего документа, в то время как ImageDevice нацелено на отдельные страницы.

Преобразование PDF с помощью класса DocumentDevice

Используйте DocumentDevice, если хотите вывести весь PDF в один многостраничный TIFF-файл.

Класс TiffDevice основан на DocumentDevice и предоставляет метод process для преобразования всех страниц PDF-файла в один TIFF-файл.

Преобразование страницы PDF в одно изображение TIFF

Aspose.PDF for Python via .NET может рендерить каждую страницу PDF‑файла в одно TIFF‑изображение.

Шаги: Конвертировать PDF в TIFF в Python

  1. Загрузите исходный PDF с помощью класса Document.
  2. Создайте объекты TiffSettings и TiffDevice.
  3. Настройте параметры TIFF, такие как сжатие, глубина цвета и обработка пустых страниц.
  4. Вызовите метод process, чтобы записать TIFF-файл.

Следующий фрагмент кода показывает, как преобразовать все страницы PDF в одно изображение 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)

Преобразование PDF с использованием класса ImageDevice

Используйте ImageDevice, если вам нужен постраничный вывод в растровом формате.

ImageDevice является базовым классом для BmpDevice, JpegDevice, GifDevice, PngDevice, и EmfDevice.

  • Класс BmpDevice позволяет преобразовывать страницы PDF в BMP-изображения.
  • Класс EmfDevice позволяет преобразовывать страницы PDF в изображения EMF.
  • Класс JpegDevice позволяет преобразовывать страницы PDF в изображения JPEG.
  • Класс PngDevice позволяет преобразовывать страницы PDF в изображения PNG.
  • Класс GifDevice позволяет преобразовывать страницы PDF в изображения GIF.

Рабочий процесс одинаков для каждого формата: загрузите документ, создайте соответствующее устройство, затем обработайте требуемую страницу.

BmpDevice предоставляет метод process для рендеринга конкретной страницы в BMP. Остальные классы ImageDevice работают по тому же шаблону, поэтому формат можно сменить, просто заменив класс устройства.

Следующие примеры показывают, как рендерить страницы PDF в распространённые форматы изображений:

  • Конвертация PDF в BMP
  • Конвертация PDF в EMF
  • Конвертация PDF в JPEG
  • Конвертация PDF в PNG
  • Конвертация PDF в GIF

Шаги: PDF в изображение (BMP, EMF, JPG, PNG, GIF) на Python

  1. Загрузите PDF-файл с помощью класса Document.
  2. Создайте экземпляр нужного подкласса ImageDevice:
    • BmpDevice (для конвертации PDF в BMP)
    • EmfDevice (для конвертации PDF в EMF)
    • JpegDevice (для конвертации PDF в JPG)
    • PngDevice (для преобразования PDF в PNG)
    • GifDevice (для преобразования PDF в GIF)
  3. Переберите страницы, которые вы хотите экспортировать.
  4. Вызовите метод ImageDevice.process(), чтобы сохранить каждую страницу как изображение.

Преобразование PDF в 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)

Преобразование PDF в 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)

Преобразование PDF в 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)

Преобразование PDF в 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

Преобразование PDF в PNG с шрифтом по умолчанию

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

Преобразование PDF в 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)

Преобразование PDF с использованием класса SaveOptions

Используйте SaveOptions, если хотите экспортировать содержимое PDF в SVG.

Scalable Vector Graphics (SVG) — это основанный на XML формат двумерной векторной графики. Поскольку SVG остаётся векторным, он полезен, когда вам нужен масштабируемый вывод для веба, пользовательского интерфейса или дизайнерских рабочих процессов.

Файлы SVG являются текстовыми, пригодными для поиска и их легко постобрабатывать в других инструментах.

Aspose.PDF for Python via .NET может как конвертировать SVG в PDF, так и экспортировать страницы PDF в SVG. Для конвертации PDF в SVG создайте объект SvgSaveOptions и передайте его в метод document.save().

Следующие шаги показывают, как преобразовать файл PDF в SVG с помощью Python.

Шаги: Преобразовать PDF в SVG с помощью Python

  1. Загрузите исходный PDF с помощью класса Document.
  2. Создайте объект SvgSaveOptions и настройте нужные параметры.
  3. Вызовите метод document.save() с экземпляром SvgSaveOptions, чтобы записать выходной SVG-файл.

Преобразование PDF в 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)

Связанные преобразования