Mengonversi sekumpulan gambar yang tersebar menjadi satu PDF yang dapat dicari adalah kebutuhan yang sering muncul untuk alat pelaporan, generator faktur, dan sistem arsip. Aspose.PDF for Python via .NET adalah SDK yang kuat yang membuat konversi ini cepat dan dapat diandalkan dalam aplikasi Python. Panduan ini memandu Anda melalui pemasangan SDK, memuat gambar dengan Python Imaging Library, membangun PDF halaman per halaman, menyesuaikan pengaturan kompresi, dan akhirnya menyimpan hasilnya, semuanya dengan contoh kode yang jelas.
Sebelum Anda Memulai: Prasyarat dan Instalasi
Untuk mengikuti tutorial ini Anda memerlukan:
- Python 3.8 atau yang lebih baru terpasang di mesin pengembangan Anda.
- IDE atau editor pilihan Anda (VS Code, PyCharm, dll.).
- Akses ke internet untuk mengunduh paket SDK.
Instal Aspose.PDF SDK dan pustaka Pillow (Python Imaging Library de‑facto) dengan pip:
pip install aspose-pdf pillow
Anda juga dapat mengunduh SDK secara manual dari halaman rilis resmi: Aspose.PDF for Python via .NET Download. Setelah instalasi, impor namespace yang diperlukan dalam skrip Anda.
Sekarang lingkungan sudah siap, mari kita selami implementasinya.
Buat PDF dari Gambar di Python: Panduan Langkah demi Langkah
Langkah 1: Muat Gambar Sumber
Pertama, gunakan Pillow untuk membuka setiap file gambar dan menyimpannya dalam sebuah daftar. Ini menyiapkan data gambar untuk pembuat 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]
Langkah 2: Buat Dokumen PDF Baru
Instansiasikan objek Aspose.PDF Document yang akan menampung halaman.
import aspose.pdf as ap
pdf_doc = ap.Document()
Untuk detail lebih lanjut tentang kelas Document, lihat referensi API.
Langkah 3: Tambahkan Setiap Gambar sebagai Halaman Terpisah
Iterasi melalui gambar yang dimuat, buat halaman, dan sematkan gambar. SDK secara otomatis mengubah skala gambar agar sesuai dengan ukuran halaman.
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
Langkah 4: Konfigurasi Opsi Kompresi
Sesuaikan tingkat kompresi gambar untuk mengurangi ukuran PDF akhir tanpa mengorbankan kualitas.
# 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
Langkah 5: Simpan File PDF
Akhirnya, tulis dokumen yang telah dirakit ke disk.
output_path = "output/result.pdf"
pdf_doc.save(output_path)
print(f"PDF generated successfully at {output_path}")
Dengan langkah-langkah ini, Anda memiliki alur kerja yang sepenuhnya berfungsi untuk menghasilkan PDF dari gambar dalam Python.
Membuat PDF dari Kumpulan Gambar dalam Python - Contoh Kode Lengkap
Script berikut menggabungkan semua bagian menjadi satu program yang dapat dijalankan.
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}")
Catatan: Contoh kode ini menunjukkan fungsionalitas inti. Sebelum menggunakannya dalam proyek Anda, pastikan untuk memperbarui jalur file (
input_images,output/result.pdf), memverifikasi bahwa semua dependensi yang diperlukan telah terpasang dengan benar, dan menguji secara menyeluruh di lingkungan pengembangan Anda. Jika Anda menemukan masalah, silakan merujuk ke dokumentasi resmi atau hubungi tim dukungan untuk bantuan.
Pengaturan Generasi PDF Lanjutan: Opsi dan Konfigurasi
Selain alur kerja dasar, Aspose.PDF menawarkan beberapa properti untuk menyempurnakan output.
Tingkat Kompresi Gambar
Kontrol kompromi antara kualitas dan ukuran file.
pdf_image.compression = ap.ImageCompression.JPEG
pdf_image.jpeg_quality = 70 # Lower value = smaller file, lower quality
Ukuran Halaman dan Margin
Atur ukuran halaman khusus jika Anda memerlukan tata letak yang seragam.
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)
Resolusi (DPI)
DPI yang lebih tinggi menghasilkan gambar yang lebih tajam dengan biaya PDF yang lebih besar.
pdf_doc.page_info.dpi = 300
Untuk daftar lengkap properti yang dapat dikonfigurasi, lihat referensi API.
Kesimpulan
Anda sekarang memiliki solusi programatik lengkap untuk menghasilkan PDF dari gambar di Python menggunakan Aspose.PDF for Python via .NET. SDK menangani pemuatan gambar, pembuatan halaman, kompresi, dan penyimpanan dengan hanya beberapa baris kode, memungkinkan Anda fokus pada logika bisnis bukan pada penanganan PDF tingkat rendah. Saat Anda beralih ke produksi, ingatlah untuk memperoleh lisensi yang tepat; detailnya tersedia di halaman harga dan Anda dapat memulai dengan lisensi sementara untuk evaluasi. Selamat coding, dan nikmati kemudahan mengubah koleksi gambar menjadi PDF yang halus!
FAQs
Bagaimana cara menghasilkan PDF dari gambar di Python menggunakan Aspose.PDF?
Gunakan SDK Aspose.PDF untuk membuatDocument, tambahkan halaman untuk setiap gambar yang dimuat dengan Pillow, secara opsional atur kompresi, dan panggilsave()untuk menulis PDF. Contoh lengkap disertakan di atas.Format gambar apa yang didukung untuk pembuatan PDF?
SDK menerima PNG, JPG, JPEG, BMP, GIF, dan TIFF secara langsung. Pillow juga dapat mengonversi format yang tidak didukung menjadi salah satu dari format ini sebelum menambahkannya ke PDF.Apakah saya memerlukan lisensi untuk penggunaan komersial?
Ya. Dapatkan lisensi evaluasi sementara dari halaman lisensi sementara dan beli lisensi penuh melalui halaman harga untuk penerapan produksi.Bisakah saya menyesuaikan ukuran halaman PDF dan resolusinya?
Tentu saja. Gunakanpage.page_info.width,page.page_info.height, danpdf_doc.page_info.dpiuntuk mengontrol dimensi dan DPI, seperti yang ditunjukkan di bagian Konfigurasi / Opsi.
