Convertire una raccolta di immagini sparse in un unico PDF ricercabile è una necessità frequente per gli strumenti di reporting, i generatori di fatture e i sistemi di archiviazione. Aspose.PDF for Python via .NET è un potente SDK che rende questa conversione rapida e affidabile nelle applicazioni Python. Questa guida ti accompagna nell’installazione dell’SDK, nel caricamento delle immagini con la Python Imaging Library, nella costruzione del PDF pagina per pagina, nella regolazione delle impostazioni di compressione e, infine, nel salvataggio del risultato, il tutto con esempi di codice chiari.
Prima di iniziare: requisiti e installazione
Per seguire questo tutorial è necessario:
- Python 3.8 o versioni successive installato sulla tua macchina di sviluppo.
- Un IDE o editor a tua scelta (VS Code, PyCharm, ecc.).
- Accesso a Internet per scaricare il pacchetto SDK.
Installa l’SDK Aspose.PDF e la libreria Pillow (la libreria di imaging Python de‑facto) con pip:
pip install aspose-pdf pillow
Puoi anche scaricare l’SDK manualmente dalla pagina di rilascio ufficiale: Aspose.PDF for Python via .NET Download. Dopo l’installazione, importa gli spazi dei nomi richiesti nel tuo script.
Ora che l’ambiente è pronto, immergiamoci nell’implementazione.
Genera PDF da immagini in Python: Guida passo passo
Passo 1: Carica le immagini di origine
Innanzitutto, usa Pillow per aprire ogni file immagine e conservali in un elenco. Questo prepara i dati dell’immagine per il costruttore 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]
Passo 2: Crea un nuovo documento PDF
Istanzia l’oggetto Document di Aspose.PDF che conterrà le pagine.
import aspose.pdf as ap
pdf_doc = ap.Document()
Per ulteriori dettagli sulla classe Document, consulta il riferimento API.
Passo 3: Aggiungi ogni immagine come pagina separata
Scorri le immagini caricate, crea una pagina e incorpora l’immagine. L’SDK ridimensiona automaticamente l’immagine per adattarla alle dimensioni della pagina.
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
Passo 4: Configura le opzioni di compressione
Regola il livello di compressione delle immagini per ridurre le dimensioni finali del PDF senza sacrificare la qualità.
# 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
Passo 5: Salva il file PDF
Infine, scrivi il documento assemblato su disco.
output_path = "output/result.pdf"
pdf_doc.save(output_path)
print(f"PDF generated successfully at {output_path}")
Con questi passaggi, hai un flusso di lavoro completamente funzionale per generare PDF da immagini in Python.
Crea PDF da una collezione di immagini in Python - Esempio di codice completo
Lo script seguente mette tutti i pezzi insieme in un unico programma eseguibile.
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}")
Nota: Questo esempio di codice dimostra la funzionalità principale. Prima di usarlo nel tuo progetto, assicurati di aggiornare i percorsi dei file (
input_images,output/result.pdf), verifica che tutte le dipendenze richieste siano correttamente installate e testa accuratamente nell’ambiente di sviluppo. Se incontri problemi, consulta la documentazione ufficiale o contatta il team di supporto per assistenza.
Impostazioni avanzate di generazione PDF: opzioni e configurazione
Oltre al flusso di lavoro di base, Aspose.PDF offre diverse proprietà per perfezionare l’output.
Livello di compressione dell’immagine
Controlla il compromesso tra qualità e dimensione del file.
pdf_image.compression = ap.ImageCompression.JPEG
pdf_image.jpeg_quality = 70 # Lower value = smaller file, lower quality
Dimensione della pagina e margini
Imposta una dimensione di pagina personalizzata se hai bisogno di un layout uniforme.
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)
Risoluzione (DPI)
Un DPI più alto produce immagini più nitide a costo di PDF più grandi.
pdf_doc.page_info.dpi = 300
Per un elenco completo delle proprietà configurabili, consultare il riferimento API.
Conclusione
Ora hai una soluzione completa e programmatica per generare PDF da immagini in Python usando Aspose.PDF for Python via .NET. L’SDK gestisce il caricamento delle immagini, la creazione delle pagine, la compressione e il salvataggio con poche righe di codice, permettendoti di concentrarti sulla logica di business invece che sulla gestione a basso livello dei PDF. Quando passi alla produzione, ricorda di acquisire una licenza adeguata; i dettagli sono disponibili sulla pagina dei prezzi e puoi iniziare con una licenza temporanea per la valutazione. Buona programmazione e goditi la semplicità di trasformare collezioni di immagini in PDF curati!
FAQs
Come posso generare un PDF da immagini in Python usando Aspose.PDF?
Usa l’SDK Aspose.PDF per creare unDocument, aggiungere una pagina per ogni immagine caricata con Pillow, impostare facoltativamente la compressione e chiamaresave()per scrivere il PDF. L’esempio completo è incluso sopra.Quali formati immagine sono supportati per la generazione di PDF?
L’SDK accetta direttamente PNG, JPG, JPEG, BMP, GIF, e TIFF. Pillow può anche convertire i formati non supportati in uno di questi prima di aggiungerli al PDF.Ho bisogno di una licenza per uso commerciale?
Sì. Ottieni una licenza di valutazione temporanea dalla pagina della licenza temporanea e acquista una licenza completa tramite la pagina dei prezzi per le distribuzioni in produzione.Posso regolare le dimensioni della pagina PDF e la risoluzione?
Assolutamente. Usapage.page_info.width,page.page_info.heightepdf_doc.page_info.dpiper controllare le dimensioni e i DPI, come mostrato nella sezione Configurazione / Opzioni.
