Att konvertera en samling spridda bilder till en enda, sökbar PDF är ett vanligt krav för rapportverktyg, fakturageneratorer och arkiveringssystem. Aspose.PDF for Python via .NET är ett kraftfullt SDK som gör denna konvertering snabb och pålitlig i Python‑applikationer. Denna guide visar dig hur du installerar SDK‑et, laddar bilder med Python Imaging Library, bygger PDF‑en sida för sida, justerar komprimeringsinställningarna och slutligen sparar resultatet, allt med tydliga kodexempel.
Innan du börjar: Förutsättningar och installation
För att följa den här handledningen behöver du:
- Python 3.8 eller nyare installerat på din utvecklingsmaskin.
- En IDE eller redigerare efter ditt val (VS Code, PyCharm, etc.).
- Tillgång till internet för att ladda ner SDK‑paketet.
Installera Aspose.PDF SDK och Pillow‑biblioteket (det de‑facto Python Imaging Library) med pip:
pip install aspose-pdf pillow
Du kan också ladda ner SDK:n manuellt från den officiella releasesidan: Aspose.PDF for Python via .NET nedladdning. Efter installationen importerar du de nödvändiga namnrymderna i ditt skript.
Nu när miljön är klar, låt oss dyka in i implementeringen.
Skapa PDF från bilder i Python: Steg-för-steg-genomgång
Steg 1: Ladda källbilderna
Först, använd Pillow för att öppna varje bildfil och behåll dem i en lista. Detta förbereder bilddata för PDF‑byggaren.
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]
Steg 2: Skapa ett nytt PDF-dokument
Instansiera Aspose.PDF Document-objektet som kommer att hålla sidorna.
import aspose.pdf as ap
pdf_doc = ap.Document()
För mer information om Document-klassen, se API-referensen.
Steg 3: Lägg till varje bild som en separat sida
Iterera genom de inlästa bilderna, skapa en sida och bädda in bilden. SDK:n skalar automatiskt bilden så att den passar sidstorleken.
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
Steg 4: Konfigurera komprimeringsalternativ
Justera bildkomprimeringsnivån för att minska den slutliga PDF‑storleken utan att kompromissa med kvaliteten.
# 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
Steg 5: Spara PDF-filen
Skriv slutligen det sammansatta dokumentet till disk.
output_path = "output/result.pdf"
pdf_doc.save(output_path)
print(f"PDF generated successfully at {output_path}")
Med dessa steg har du ett fullt fungerande arbetsflöde för att generera PDF från bilder i Python.
Skapa PDF från bildsamling i Python - Komplett kodexempel
Följande skript sätter ihop alla delarna till ett enda körbart program.
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}")
Obs: Detta kodexempel demonstrerar kärnfunktionaliteten. Innan du använder det i ditt projekt, se till att uppdatera filsökvägarna (
input_images,output/result.pdf), verifiera att alla nödvändiga beroenden är korrekt installerade och testa noggrant i din utvecklingsmiljö. Om du stöter på några problem, hänvisa till den officiella dokumentationen eller kontakta supportteamet för hjälp.
Avancerade PDF‑genereringsinställningar: Alternativ och konfiguration
Utöver det grundläggande arbetsflödet erbjuder Aspose.PDF flera egenskaper för att finjustera resultatet.
Bildkomprimeringsnivå
Kontrollera avvägningen mellan kvalitet och filstorlek.
pdf_image.compression = ap.ImageCompression.JPEG
pdf_image.jpeg_quality = 70 # Lower value = smaller file, lower quality
Sidstorlek och marginaler
Ställ in en anpassad sidstorlek om du behöver en enhetlig layout.
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)
Upplösning (DPI)
Högre DPI ger skarpare bilder på bekostnad av större PDF-filer.
pdf_doc.page_info.dpi = 300
För en fullständig lista över konfigurerbara egenskaper, konsultera API‑referensen.
Slutsats
Du har nu en komplett, programmerbar lösning för att generera PDF från bilder i Python med hjälp av Aspose.PDF for Python via .NET. SDK:et hanterar bildladdning, sidskapande, komprimering och sparande med bara några rader kod, så att du kan fokusera på affärslogik istället för låg‑nivå PDF‑hantering. När du går i produktion, kom ihåg att skaffa en korrekt licens; detaljer finns på prissättningssidan och du kan börja med en tillfällig licens för utvärdering. Lycka till med kodningen, och njut av enkelheten att omvandla bildsamlingar till polerade PDF‑filer!
Vanliga frågor
Hur kan jag generera PDF från bilder i Python med Aspose.PDF?
Använd Aspose.PDF SDK för att skapa ettDocument, lägg till en sida för varje bild som laddas med Pillow, ange eventuellt komprimering och anropasave()för att skriva PDF-filen. Det fullständiga exemplet finns ovan.Vilka bildformat stöds för PDF-generering?
SDK:n accepterar PNG, JPG, JPEG, BMP, GIF, och TIFF direkt. Pillow kan också konvertera ej stödda format till ett av dessa innan de läggs till i PDF:en.Behöver jag en licens för kommersiell användning?
Ja. Skaffa en tillfällig utvärderingslicens från tillfällig licenssida och köp en fullständig licens via prissida för produktionsdistributioner.Kan jag justera PDF‑sidans storlek och upplösning?
Absolut. Användpage.page_info.width,page.page_info.heightochpdf_doc.page_info.dpiför att kontrollera dimensioner och DPI, som visas i avsnittet Konfiguration / Alternativ.
