Úvod
Aspose.Page FOSS pro Python je bezplatná, open-source knihovna pro převod PostScript (PS), Encapsulated PostScript (EPS) a XPS dokumentů do PDF a rastrových obrázků v aplikacích Python. Je distribuována pod licencí MIT a je k dispozici na PyPI jako aspose-page-foss.
Knihovna poskytuje dvě hlavní třídy dokumentů: PsDocument pro soubory PS a EPS a XpsDocument pro soubory XPS. Obě třídy vystavují metody to_pdf() a to_image(), které vrací pole bajtů, což usnadňuje integraci do zpracovatelských pipeline bez nutnosti zapisovat dočasné soubory.
Protože knihovna nevyžaduje žádnou závislost na Ghostscript, Adobe Reader ani žádném nativním runtime Office, běží na Windows, Linuxu a macOS, včetně CI runnerů a Docker kontejnerů. Vývojáři, kteří potřebují plnou komerční verzi API s pokročilými renderovacími funkcemi, mohou i nadále používat podnikovou Aspose.Page pro produkt Python vedle těchto open-source nástrojů.
Co je zahrnuto
Konverze PS a EPS do PDF
PsDocument obsluhuje jak PostScript (.ps), tak Encapsulated PostScript (.eps) soubory pomocí stejného rozhraní třídy. Zavolejte PsDocument.from_file() pro načtení dokumentu a poté to_pdf() pro získání výsledku jako pole bajtů PDF.
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)
Metoda třídy from_bytes() přijímá surové bajty, takže dokumenty přicházející ze síťových streamů nebo souborových uploadů lze zpracovat, aniž by se nejprve zapisovaly na disk.
PS a EPS na rastrový obrázek
Pro vykreslení dokumentu PS nebo EPS do obrázku PNG nebo JPEG předávejte instanci ImageSaveOptions do to_image(). Nastavte vlastnost format na "png" nebo "jpeg" a vlastnost dpi pro řízení výstupního rozlišení.
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 na PDF a obrázek
XpsDocument načítá soubory XPS a poskytuje stejná rozhraní to_pdf() a to_image() jako PsDocument. Zavolejte XpsDocument.from_file() pro načtení XPS dokumentu a poté jej převeďte do požadovaného výstupního formátu.
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))
Zpracování v paměti
Všechny metody konverze vracejí objekty bytes. Dočasné soubory nejsou nikdy vyžadovány, pokud je aplikace výslovně nezapisuje. Konstruktor from_bytes() jak v PsDocument, tak v XpsDocument přijímá surové bajty jako vstup, takže celý proces může zůstat v paměti.
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()
Integrace MCP Serveru
Knihovna obsahuje volitelný MCP server, který zpřístupňuje funkce převodu jako vzdálené nástroje pomocí FastMCP. Server registruje ps_to_pdf, ps_to_image, xps_to_pdf a xps_to_image jako volatelné nástroje. McpInput přijímá cestu k souboru nebo base64-kódované bajty; McpOutput vrací base64 bajty nebo zapisuje na cestu.
FastMCP je volitelná závislost — základní funkčnost převodu funguje i bez ní. MCP server je užitečný pro zpřístupnění knihovny z pipeline AI agentů, mikroservis a editorů, které podporují MCP nástrojové servery.
Rychlý start
Nainstalujte knihovnu pomocí pip:
git clone https://github.com/aspose-page-foss/Aspose.Page-FOSS-for-Python.git
cd Aspose.Page-FOSS-for-Python
pip install -e .Následující příklad pokrývá nejčastější scénář — převod souboru PS do PDF a uložení na 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())
Podporované formáty
Aspose.Page FOSS pro Python čte PostScript (.ps), Encapsulated PostScript (.eps) a XML Paper Specification (.xps) soubory. Výstupní formáty jsou PDF (.pdf) a rastrové obrázky (.png, .jpeg). Všechny převody jsou pouze exportní — knihovna neumožňuje zápis PS, EPS ani XPS.
Open Source a licencování
Aspose.Page FOSS pro Python je vydáno pod licencí MIT. Zdrojový kód je hostován na GitHub na github.com/aspose-page-foss/Aspose.Page-FOSS-for-Python. Komerční použití je povoleno bez omezení podle podmínek MIT.