Wprowadzenie
Aspose.Page FOSS dla Python jest darmową, otwarto-źródłową biblioteką do konwertowania PostScript (PS), Encapsulated PostScript (EPS) oraz dokumentów XPS na PDF i obrazy rastrowe w aplikacjach Python. Jest dystrybuowana na licencji MIT i dostępna na PyPI jako aspose-page-foss.
Biblioteka udostępnia dwie klasy dokumentów najwyższego poziomu: PsDocument dla plików PS i EPS oraz XpsDocument dla plików XPS. Obie klasy udostępniają metody to_pdf() i to_image(), które zwracają tablice bajtów, co ułatwia integrację w potokach przetwarzania plików bez konieczności tworzenia plików tymczasowych.
Ponieważ biblioteka nie ma zależności od Ghostscript, Adobe Reader ani żadnego natywnego środowiska uruchomieniowego Office, działa na Windows, Linux i macOS, w tym w środowiskach CI oraz kontenerach Docker. Deweloperzy, którzy potrzebują pełnej komercyjnej wersji API z zaawansowanymi funkcjami renderowania, mogą nadal korzystać z przedsiębiorczej wersji Aspose.Page dla produktu Python obok tych narzędzi open-source.
Co zawiera
Konwersja PS i EPS do PDF
PsDocument obsługuje zarówno PostScript (.ps), jak i Encapsulated PostScript (.eps) pliki poprzez ten sam interfejs klasy. Wywołaj PsDocument.from_file(), aby załadować dokument, a następnie wywołaj to_pdf(), aby uzyskać wynik jako tablicę bajtów 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 klasy from_bytes() przyjmuje surowe bajty, więc dokumenty przychodzące z przepływów sieciowych lub przesyłane jako pliki mogą być przetwarzane bez zapisywania ich najpierw na dysku.
PS i EPS do obrazu rastrowego
Aby wyrenderować dokument PS lub EPS do obrazu PNG lub JPEG, przekaż instancję ImageSaveOptions do to_image(). Ustaw właściwość format na "png" lub "jpeg" oraz właściwość dpi, aby kontrolować rozdzielczość wyjściową.
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 do PDF i obrazu
XpsDocument ładuje pliki XPS i udostępnia ten sam interfejs to_pdf() i to_image() co PsDocument. Wywołaj XpsDocument.from_file(), aby załadować dokument XPS, a następnie przekonwertuj go do żądanego formatu wyjściowego.
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))
Przetwarzanie w pamięci
Wszystkie metody konwersji zwracają obiekty bytes. Pliki tymczasowe nigdy nie są wymagane, chyba że aplikacja wyraźnie je zapisze. Konstruktorzy from_bytes() zarówno w PsDocument, jak i w XpsDocument przyjmują surowe bajty jako wejście, dzięki czemu cały pipeline może pozostać w pamięci.
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()
Integracja z serwerem MCP
Biblioteka zawiera opcjonalny serwer MCP, który udostępnia funkcje konwersji jako zdalne narzędzia przy użyciu FastMCP. Serwer rejestruje ps_to_pdf, ps_to_image, xps_to_pdf i xps_to_image jako wywoływalne narzędzia. McpInput przyjmuje ścieżkę do pliku lub bajty zakodowane w base64; McpOutput zwraca bajty w base64 lub zapisuje do ścieżki.
FastMCP jest opcjonalnym zależnością — podstawowa funkcjonalność konwersji działa bez niej. Serwer MCP jest przydatny do udostępniania biblioteki w pipeline’ach agentów AI, mikroserwisach i edytorach obsługujących serwery narzędzi MCP.
Szybki start
Zainstaluj bibliotekę przy pomocy pip:
git clone https://github.com/aspose-page-foss/Aspose.Page-FOSS-for-Python.git
cd Aspose.Page-FOSS-for-Python
pip install -e .Poniższy przykład obejmuje najczęstszy przypadek użycia — konwersję pliku PS do PDF i zapisanie go na dysku:
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())
Obsługiwane formaty
Aspose.Page FOSS dla Python odczytuje PostScript (.ps), Encapsulated PostScript (.eps) oraz pliki XML Paper Specification (.xps). Formatami wyjściowymi są PDF (.pdf) i obrazy rastrowe (.png, .jpeg). Wszystkie konwersje są tylko eksportowe — biblioteka nie zapisuje PS, EPS ani XPS.
Open Source i licencjonowanie
Aspose.Page FOSS dla Python jest udostępniony na licencji MIT. Kod źródłowy jest hostowany na GitHub pod adresem github.com/aspose-page-foss/Aspose.Page-FOSS-for-Python. Komercyjne użycie jest dozwolone bez ograniczeń na warunkach licencji MIT.