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.


Rozpoczęcie

Powiązane zasoby