Introduktion
Aspose.Page FOSS för Python är ett gratis, öppen källkod-bibliotek för att konvertera PostScript (PS), Encapsulated PostScript (EPS) och XPS-dokument till PDF och rasterbilder i Python-applikationer. Det distribueras under MIT-licensen och finns tillgängligt på PyPI som aspose-page-foss.
Biblioteket tillhandahåller två övergripande dokumentklasser: PsDocument för PS- och EPS-filer, och XpsDocument för XPS-filer. Båda klasserna exponerar to_pdf() och to_image() metoder som returnerar byte arrays, vilket gör det enkelt att integrera i filbehandlingspipelines utan att skriva temporära filer.
Eftersom biblioteket inte har något beroende av Ghostscript, Adobe Reader eller någon inbyggd Office-runtime, kör det på Windows, Linux och macOS inklusive CI-runners och Docker-containrar. Utvecklare som behöver den fullständiga kommersiella API med avancerade renderingsfunktioner kan fortsätta att använda företags-Aspose.Page för Python-produkten tillsammans med dessa öppen källkod-verktyg.
Vad som ingår
PS- och EPS-till-PDF-konvertering
PsDocument hanterar både PostScript (.ps) och Encapsulated PostScript (.eps) filer via samma klassgränssnitt. Anropa PsDocument.from_file() för att läsa in ett dokument, och anropa sedan to_pdf() för att få resultatet som en PDF byte array.
from pathlib import Path
from aspose.page.ps.document import PsDocument
ps = PsDocument.from_file("input.ps")
pdf_bytes = ps.to_pdf()
Path("output.pdf").write_bytes(pdf_bytes)
Metoden from_bytes() i klassen accepterar råa byte, så dokument som kommer från nätverksströmmar eller filuppladdningar kan bearbetas utan att först skriva till disk.
PS och EPS till rasterbild
För att rendera ett PS- eller EPS-dokument till en PNG- eller JPEG-bild, skicka en ImageSaveOptions-instans till to_image(). Ställ in egenskapen format till "png" eller "jpeg" och egenskapen dpi för att kontrollera utdataupplösningen.
from aspose.page.ps.document import PsDocument
from aspose.page.ps.output import ImageSaveOptions
eps = PsDocument.from_file("input.eps")
opts = ImageSaveOptions(format="png", dpi=150)
png_bytes = eps.to_image(opts)
XPS till PDF och bild
XpsDocument läser in XPS-filer och exponerar samma to_pdf() och to_image() gränssnitt som PsDocument. Anropa XpsDocument.from_file() för att läsa in ett XPS-dokument, och konvertera sedan till önskat utdataformat.
from pathlib import Path
from aspose.page.xps.document import XpsDocument
from aspose.page.ps.output import ImageSaveOptions
xps = XpsDocument.from_file("input.xps")
pdf_bytes = xps.to_pdf()
Path("output.pdf").write_bytes(pdf_bytes)
png_bytes = xps.to_image(ImageSaveOptions(format="png", dpi=96))
Bearbetning i minnet
Alla konverteringsmetoder returnerar bytes-objekt. Tillfälliga filer behövs aldrig om inte applikationen uttryckligen skriver dem. from_bytes()-konstruktörerna på både PsDocument och XpsDocument accepterar råa byte som indata, så hela pipeline kan hållas i minnet.
from aspose.page.ps.document import PsDocument
def convert_ps_in_memory(ps_bytes: bytes) -> bytes:
doc = PsDocument.from_bytes(ps_bytes)
return doc.to_pdf()
MCP Server-integration
Biblioteket inkluderar en valfri MCP-server som exponerar konverteringsfunktioner som fjärrverktyg med hjälp av FastMCP. Servern registrerar ps_to_pdf, ps_to_image, xps_to_pdf och xps_to_image som anropbara verktyg. McpInput accepterar en filsökväg eller base64-kodade bytes; McpOutput returnerar base64-bytes eller skriver till en sökväg.
FastMCP är ett valfritt beroende — kärnfunktionaliteten för konvertering fungerar utan det. MCP-servern är användbar för att göra biblioteket anropbart från AI-agent-pipelines, mikrotjänster och redigerare som stöder MCP-verktygsservrar.
Snabbstart
Installera biblioteket med pip:
git clone https://github.com/aspose-page-foss/Aspose.Page-FOSS-for-Python.git
cd Aspose.Page-FOSS-for-Python
pip install -e .Följande exempel täcker det vanligaste användningsfallet — konvertera en PS-fil till PDF och spara den på disk:
from pathlib import Path
from aspose.page.ps.document import PsDocument
from aspose.page.ps.output import ImageSaveOptions
# Convert PS to PDF
ps = PsDocument.from_file("document.ps")
Path("document.pdf").write_bytes(ps.to_pdf())
# Convert EPS to PNG at 150 DPI
eps = PsDocument.from_file("illustration.eps")
opts = ImageSaveOptions(format="png", dpi=150)
Path("illustration.png").write_bytes(eps.to_image(opts))
# Convert XPS to PDF
from aspose.page.xps.document import XpsDocument
xps = XpsDocument.from_file("document.xps")
Path("document.pdf").write_bytes(xps.to_pdf())
Stödda format
Aspose.Page FOSS för Python läser PostScript (.ps), Encapsulated PostScript (.eps) och XML Paper Specification (.xps)-filer. Utdataformat är PDF (.pdf) och rasterbilder (.png, .jpeg). Alla konverteringar är enbart export — biblioteket skriver inte PS, EPS eller XPS.
Öppen källkod & licensiering
Aspose.Page FOSS för Python släpps under MIT-licensen. Källkoden hostas på GitHub på github.com/aspose-page-foss/Aspose.Page-FOSS-for-Python. Kommersiell användning är tillåten utan begränsning enligt MIT-villkoren.