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 membuat Document, tambahkan halaman untuk setiap gambar yang dimuat dengan Pillow, secara opsional atur kompresi, dan panggil save() 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. Gunakan page.page_info.width, page.page_info.height, dan pdf_doc.page_info.dpi untuk mengontrol dimensi dan DPI, seperti yang ditunjukkan di bagian Konfigurasi / Opsi.

Baca Selengkapnya