Использование 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()
Разбор кода
- Импорт библиотек и настройка путей : сначала импортируем Spire.PDF и модуль os, определяем путь к папке с изображениями и путь к выходному файлу.
- Создание PDF-документа : создаём пустой PDF-документ с помощью PdfDocument() и убираем поля страницы через SetMargins(0.0), чтобы изображение полностью заполняло страницу.
- Чтение файлов изображений : используем os.listdir() для получения всех файлов в папке, фильтруем JPG и JPEG с помощью endswith() и сортируем через sorted(), чтобы изображения объединялись в порядке имён файлов.
- Добавление изображений по одному : для каждого изображения загружаем его через PdfImage.FromFile(), получаем его исходные размеры, создаём PDF-страницу такого же размера и с помощью DrawImage() рисуем изображение на странице.
- Сохранение и освобождение ресурсов : сохраняем PDF-файл через SaveToFile() и вызываем Dispose() для освобождения ресурсов документа.
Результат работы
После выполнения кода программа автоматически создаст файл CombinedImages.pdf в папке output. Каждая страница этого PDF соответствует одному исходному изображению, а размер страницы полностью совпадает с размером изображения, что обеспечивает наилучшее качество отображения. На основе приведённого кода можно легко добавить дополнительные функции: Использование Spire.PDF for Python для преобразования изображений в PDF отличается простотой кода, лёгкостью понимания и не требует установки дополнительных зависимостей. Как индивидуальные пользователи, так и корпоративные заказчики могут быстро интегрировать эту функцию. Надеемся, что эта статья поможет вам повысить эффективность обработки документов и сделает управление изображениями и их совместное использование более удобными.

Расширение возможностей
Заключение