Главное Авторские колонки Вакансии Вопросы
Выбор редакции:
79 0 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Использование Python для преобразования изображений в PDF (включая объединение)

В этой статье мы рассмотрим, как с помощью Python и библиотеки Spire.PDF for Python легко реализовать преобразование и объединение изображений в PDF.
Мнение автора может не совпадать с мнением редакции

В повседневной офисной работе и обработке документов нам часто требуется объединить несколько изображений в один PDF-файл. Будь то упорядочивание отсканированных документов, создание электронных книг или архивирование материалов, преобразование изображений в PDF является очень практичной задачей. В этой статье мы рассмотрим, как с помощью Python и библиотеки Spire.PDF for Python легко реализовать преобразование и объединение изображений в PDF.

Почему стоит выбрать Spire.PDF for Python?

Spire.PDF for Python — это мощная библиотека для работы с PDF, которая не только поддерживает создание, чтение и редактиление PDF-документов, но и предоставляет богатые возможности обработки изображений. По сравнению с другими библиотеками, API Spire.PDF отличается простым и интуитивно понятным дизайном, что позволяет легко выполнять преобразование изображений в PDF и точно контролировать размер страницы и расположение изображений.

Полный код решения

Следующий код показывает, как объединить все изображения JPG/JPEG из указанной папки в один PDF-файл:

from spire.pdf import *

import os

# Путь к папке с изображениями

image_folder = r"C:\Users\Administrator\Desktop\Images"

# Путь к выходному PDF-файлу

output_file = «output/CombinedImages.pdf»

# Убедимся, что выходная директория существует

os.makedirs(os.path.dirname(output_file), exist_ok=True)

# Создаём объект PDF-документа

doc = PdfDocument()

# Убираем поля страницы, чтобы изображение заполняло весь лист

doc.PageSettings.SetMargins(0.0)

# Получаем все файлы JPG/JPEG и сортируем их

image_files = sorted([

f for f in os.listdir(image_folder)

if f.lower().endswith((".jpg«, «.jpeg»))

])

# Добавляем каждое изображение в PDF

for image_name in image_files:

image_path = os.path.join(image_folder, image_name)

# Загружаем изображение

image = PdfImage.FromFile(image_path)

# Получаем размеры изображения

width = image.PhysicalDimension.Width

height = image.PhysicalDimension.Height

# Создаём страницу с размерами, соответствующими изображению

page = doc.Pages.Add(SizeF(width, height))

# Рисуем изображение на странице

page.Canvas.DrawImage(image, 0.0, 0.0, width, height)

# Сохраняем объединённый PDF-файл

doc.SaveToFile(output_file)

doc.Dispose()

Разбор кода

  1. Импорт библиотек и настройка путей : сначала импортируем Spire.PDF и модуль os, определяем путь к папке с изображениями и путь к выходному файлу.
  2. Создание PDF-документа : создаём пустой PDF-документ с помощью PdfDocument() и убираем поля страницы через SetMargins(0.0), чтобы изображение полностью заполняло страницу.
  3. Чтение файлов изображений : используем os.listdir() для получения всех файлов в папке, фильтруем JPG и JPEG с помощью endswith() и сортируем через sorted(), чтобы изображения объединялись в порядке имён файлов.
  4. Добавление изображений по одному : для каждого изображения загружаем его через PdfImage.FromFile(), получаем его исходные размеры, создаём PDF-страницу такого же размера и с помощью DrawImage() рисуем изображение на странице.
  5. Сохранение и освобождение ресурсов : сохраняем PDF-файл через SaveToFile() и вызываем Dispose() для освобождения ресурсов документа.

Результат работы

После выполнения кода программа автоматически создаст файл CombinedImages.pdf в папке output. Каждая страница этого PDF соответствует одному исходному изображению, а размер страницы полностью совпадает с размером изображения, что обеспечивает наилучшее качество отображения.


Расширение возможностей

На основе приведённого кода можно легко добавить дополнительные функции:

  1. Поддержка других форматов изображений : добавить в условие фильтрации форматы .png, .bmp и другие
  2. Настройка размера страницы : задать фиксированный размер страницы вместо автоматического подбора под изображение
  3. Добавление сжатия изображений : контролировать размер PDF-файла путём настройки качества изображений
  4. Пакетная обработка : создавать отдельные PDF-файлы для нескольких папок

Заключение

Использование Spire.PDF for Python для преобразования изображений в PDF отличается простотой кода, лёгкостью понимания и не требует установки дополнительных зависимостей. Как индивидуальные пользователи, так и корпоративные заказчики могут быстро интегрировать эту функцию. Надеемся, что эта статья поможет вам повысить эффективность обработки документов и сделает управление изображениями и их совместное использование более удобными.

0
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.