Перетворення колекції розкиданих зображень у один, придатний до пошуку PDF є поширеною вимогою для інструментів звітності, генераторів рахунків та архівних систем. Aspose.PDF for Python via .NET — це потужний SDK, який робить це перетворення швидким і надійним у Python‑застосунках. У цьому посібнику крок за кроком розглядається встановлення SDK, завантаження зображень за допомогою Python Imaging Library, створення PDF‑файлу сторінка за сторінкою, налаштування параметрів стиснення та, нарешті, збереження результату — усе це з наочними прикладами коду.
Перш ніж почати: Попередні вимоги та встановлення
Щоб слідувати цьому підручнику, вам потрібно:
- Python 3.8 або новіший, встановлений на вашій машині розробки.
- IDE або редактор на ваш вибір (VS Code, PyCharm тощо).
- Доступ до інтернету для завантаження пакету SDK.
Встановіть SDK Aspose.PDF та бібліотеку Pillow (де‑факто Python Imaging Library) за допомогою pip:
pip install aspose-pdf pillow
Ви також можете завантажити SDK вручну зі сторінки офіційного випуску: Aspose.PDF for Python via .NET Завантажити. Після встановлення імпортуйте необхідні простори імен у ваш скрипт.
Тепер, коли середовище готове, давайте зануримось у реалізацію.
Створення PDF з зображень у Python: покроковий посібник
Крок 1: Завантажте вихідні зображення
Спочатку використайте Pillow, щоб відкрити кожен файл зображення і зберегти їх у список. Це підготовлює дані зображень для PDF‑будівника.
from PIL import Image
import os
image_folder = "input_images"
image_paths = [os.path.join(image_folder, f) for f in os.listdir(image_folder)
if f.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif'))]
images = [Image.open(p) for p in image_paths]
Крок 2: Створити новий PDF‑документ
Створіть об’єкт Document Aspose.PDF, який буде містити сторінки.
import aspose.pdf as ap
pdf_doc = ap.Document()
Для отримання докладнішої інформації про клас Document, перегляньте довідку API.
Крок 3: Додайте кожне зображення як окрему сторінку
Пройдіть по завантаженим зображенням, створіть сторінку та вставте зображення. SDK автоматично масштабує зображення, щоб воно відповідало розміру сторінки.
for img in images:
page = pdf_doc.pages.add()
# Convert Pillow image to a byte stream compatible with Aspose.PDF
with io.BytesIO() as img_stream:
img.save(img_stream, format='PNG')
img_stream.seek(0)
page.resources.images.add(ap.Image(img_stream))
# Fit the image to the page dimensions
page.page_info.width = img.width
page.page_info.height = img.height
Крок 4: Налаштування параметрів стиснення
Налаштуйте рівень стиснення зображень, щоб зменшити кінцевий розмір PDF без шкоди якості.
# Set JPEG compression for all images (if using JPEG format)
for img_res in pdf_doc.resources.images:
img_res.compression = ap.ImageCompression.JPEG
img_res.jpeg_quality = 80 # Quality range: 0‑100
Крок 5: Зберегти PDF файл
Нарешті запишіть зібраний документ на диск.
output_path = "output/result.pdf"
pdf_doc.save(output_path)
print(f"PDF generated successfully at {output_path}")
З цими кроками у вас є повністю функціональний робочий процес для генерації PDF з зображень у Python.
Створення PDF з колекції зображень у Python — повний приклад коду
Наступний скрипт збирає всі частини разом у єдину, виконувану програму.
import os
import io
from PIL import Image
import aspose.pdf as ap
# -------------------- Configuration --------------------
image_folder = "input_images" # Folder containing source images
output_pdf = "output/result.pdf" # Destination PDF file
jpeg_quality = 80 # Compression quality (0‑100)
# -------------------- Load Images --------------------
image_paths = [os.path.join(image_folder, f) for f in os.listdir(image_folder)
if f.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif'))]
images = [Image.open(p) for p in image_paths]
# -------------------- Create PDF Document --------------------
pdf_doc = ap.Document()
for img in images:
page = pdf_doc.pages.add()
with io.BytesIO() as img_stream:
img.save(img_stream, format='PNG')
img_stream.seek(0)
pdf_image = page.resources.images.add(ap.Image(img_stream))
page.page_info.width = img.width
page.page_info.height = img.height
# Apply compression if the original is JPEG
if img.format == 'JPEG':
pdf_image.compression = ap.ImageCompression.JPEG
pdf_image.jpeg_quality = jpeg_quality
# -------------------- Save PDF --------------------
pdf_doc.save(output_pdf)
print(f"PDF generated successfully at {output_pdf}")
Примітка: Цей приклад коду демонструє основну функціональність. Перш ніж використовувати його у вашому проєкті, переконайтеся, що оновили шляхи до файлів (
input_images,output/result.pdf), перевірте, що всі необхідні залежності встановлені належним чином, і ретельно протестуйте у вашому середовищі розробки. Якщо ви зіткнетеся з будь-якими проблемами, будь ласка, зверніться до офіційної документації або зв’яжіться з командою підтримки для отримання допомоги.
Розширені налаштування генерації PDF: параметри та конфігурація
Поза базовим робочим процесом, Aspose.PDF пропонує кілька властивостей для тонкого налаштування виводу.
Рівень стиснення зображення
Керуйте компромісом між якістю та розміром файлу.
pdf_image.compression = ap.ImageCompression.JPEG
pdf_image.jpeg_quality = 70 # Lower value = smaller file, lower quality
Розмір сторінки та поля
Встановіть власний розмір сторінки, якщо вам потрібен уніфікований макет.
page.page_info.width = 595 # A4 width in points
page.page_info.height = 842 # A4 height in points
page.page_info.margin = ap.MarginInfo(10, 10, 10, 10)
Роздільна здатність (DPI)
Вищий DPI забезпечує різкіші зображення за рахунок більших PDF-файлів.
pdf_doc.page_info.dpi = 300
Для повного списку налаштовуваних властивостей зверніться до довідка API.
Висновок
Тепер у вас є повне програмне рішення для генерації PDF з зображень у Python за допомогою Aspose.PDF for Python via .NET. SDK виконує завантаження зображень, створення сторінок, стискання та збереження всього кількома рядками коду, дозволяючи вам зосередитися на бізнес‑логіці, а не на низькорівневій роботі з PDF. Коли ви переходите до продакшну, пам’ятайте про придбання належної ліцензії; деталі доступні на сторінці цін і ви можете розпочати з тимчасової ліцензії для оцінки. Щасливого кодування та насолоджуйтеся простотою перетворення колекцій зображень у відшліфовані PDF!
FAQs
Як можна створити PDF з зображень у Python за допомогою Aspose.PDF?
Використовуйте SDK Aspose.PDF для створенняDocument, додайте сторінку для кожного зображення, завантаженого за допомогою Pillow, за потреби встановіть стиснення та викличтеsave(), щоб записати PDF. Повний приклад наведено вище.Які формати зображень підтримуються для створення PDF?
SDK приймає PNG, JPG, JPEG, BMP, GIF, та TIFF безпосередньо. Pillow також може конвертувати непідтримувані формати в один із цих перед додаванням їх у PDF.Чи потрібна мені ліцензія для комерційного використання?
Так. Отримайте тимчасову оцінювальну ліцензію зі сторінки тимчасової ліцензії і придбайте повну ліцензію через сторінку цін для виробничих розгортань.Чи можу я налаштувати розмір сторінки PDF та роздільну здатність?
Звичайно. Використовуйтеpage.page_info.width,page.page_info.heightтаpdf_doc.page_info.dpiдля керування розмірами та DPI, як показано у розділі Конфігурація / Параметри.
