Převod kolekce rozptýlených obrázků do jediného, prohledávatelného PDF je častý požadavek pro nástroje pro reportování, generátory faktur a archivní systémy. Aspose.PDF for Python via .NET je výkonný SDK, který umožňuje tento převod rychle a spolehlivě v Python aplikacích. Tento průvodce vás provede instalací SDK, načítáním obrázků pomocí Python Imaging Library, tvorbou PDF stránku po stránce, laděním nastavení komprese a nakonec uložením výsledku, vše s jasnými ukázkami kódu.
Než začnete: Požadavky a instalace
Pro sledování tohoto tutoriálu potřebujete:
- Python 3.8 nebo novější nainstalovaný na vašem vývojovém počítači.
- IDE nebo editor dle vašeho výběru (VS Code, PyCharm atd.).
- Přístup k internetu pro stažení balíčku SDK.
Nainstalujte SDK Aspose.PDF a knihovnu Pillow (de‑facto Python Imaging Library) pomocí pip:
pip install aspose-pdf pillow
Můžete také stáhnout SDK ručně z oficiální stránky vydání: Aspose.PDF for Python via .NET Download. Po instalaci importujte požadované jmenné prostory ve svém skriptu.
Nyní, když je prostředí připravené, pojďme se ponořit do implementace.
Vytvoření PDF z obrázků v Pythonu: krok za krokem
Krok 1: Načtěte zdrojové obrázky
Nejprve použijte Pillow k otevření každého souboru obrázku a uložte je do seznamu. Tím se připraví data obrázku pro tvůrce 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]
Krok 2: Vytvořte nový PDF dokument
Vytvořte objekt Aspose.PDF Document, který bude obsahovat stránky.
import aspose.pdf as ap
pdf_doc = ap.Document()
Pro podrobnější informace o třídě Document viz referenci API.
Krok 3: Přidejte každý obrázek jako samostatnou stránku
Procházejte načtené obrázky, vytvořte stránku a vložte obrázek. SDK automaticky mění velikost obrázku tak, aby odpovídala velikosti stránky.
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
Krok 4: Nastavení možností komprese
Upravte úroveň komprese obrazu, aby se snížila konečná velikost PDF souboru, aniž byste obětovali kvalitu.
# 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
Krok 5: Uložení souboru PDF
Nakonec zapište sestavený dokument na disk.
output_path = "output/result.pdf"
pdf_doc.save(output_path)
print(f"PDF generated successfully at {output_path}")
S těmito kroky máte plně funkční pracovní postup pro generování PDF z obrázků v Pythonu.
Vytvoření PDF ze sbírky obrázků v Pythonu - kompletní příklad kódu
Následující skript spojí všechny části do jednoho spustitelného programu.
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}")
Poznámka: Tento příklad kódu demonstruje základní funkčnost. Před jeho použitím ve vašem projektu se ujistěte, že aktualizujete cesty k souborům (
input_images,output/result.pdf), ověříte, že všechny požadované závislosti jsou řádně nainstalovány, a důkladně otestujete ve svém vývojovém prostředí. Pokud narazíte na jakékoli problémy, obraťte se na oficiální dokumentaci nebo kontaktujte tým podpory pro pomoc.
Pokročilá nastavení generování PDF: možnosti a konfigurace
Mimo základní pracovní postup nabízí Aspose.PDF několik vlastností pro jemné doladění výstupu.
Úroveň komprese obrázku
Ovládejte kompromis mezi kvalitou a velikostí souboru.
pdf_image.compression = ap.ImageCompression.JPEG
pdf_image.jpeg_quality = 70 # Nižší hodnota = menší soubor, nižší kvalita
Velikost stránky a okraje
Nastavte vlastní velikost stránky, pokud potřebujete jednotné rozvržení.
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)
Rozlišení (DPI)
Vyšší DPI přináší ostřejší obrázky za cenu větších PDF souborů.
pdf_doc.page_info.dpi = 300
Pro úplný seznam konfigurovatelných vlastností se podívejte na API reference.
Závěr
Nyní máte kompletní programové řešení pro generování PDF z obrázků v Pythonu pomocí Aspose.PDF for Python via .NET. SDK zajišťuje načítání obrázků, vytváření stránek, kompresi a ukládání pomocí několika řádků kódu, což vám umožní soustředit se na obchodní logiku místo nízkoúrovňové manipulace s PDF. Když přejdete do produkce, nezapomeňte získat řádnou licenci; podrobnosti jsou k dispozici na stránce s cenami a můžete začít s dočasnou licencí pro vyhodnocení. Šťastné programování a užijte si jednoduchost převodu kolekcí obrázků na vylepšené PDF!
Často kladené otázky
Jak mohu v Pythonu generovat PDF z obrázků pomocí Aspose.PDF?
Použijte SDK Aspose.PDF k vytvoření objektuDocument, přidejte stránku pro každý obrázek načtený pomocí Pillow, volitelně nastavte kompresi a zavolejtesave(), aby se PDF zapsalo. Kompletní příklad je uveden výše.Jaké formáty obrázků jsou podporovány pro generování PDF?
SDK přijímá PNG, JPG, JPEG, BMP, GIF a TIFF přímo. Pillow může také převést nepodporované formáty na jeden z těchto před jejich přidáním do PDF.Potřebuji licenci pro komerční použití?
Ano. Získejte dočasnou zkušební licenci na stránce dočasné licence a zakupte plnou licenci prostřednictvím stránky s cenami pro produkční nasazení.Mohu upravit velikost stránky PDF a rozlišení?
Samozřejmě. Použijtepage.page_info.width,page.page_info.heightapdf_doc.page_info.dpik řízení rozměrů a DPI, jak je uvedeno v sekci Configuration / Options.
