Konwersja PS i EPS

Konwersja PS i EPS

PsDocument jest punktem wejścia do ładowania plików PostScript (.ps) oraz Encapsulated PostScript (.eps). Oba formaty są obsługiwane przez tę samą klasę przy użyciu tego samego interfejsu.


Ładowanie pliku PS lub EPS

Użyj PsDocument.from_file(), aby załadować dokument ze ścieżki pliku. Właściwość is_eps wskazuje, czy załadowany plik jest plikiem EPS.

from aspose.page.ps.document import PsDocument

ps = PsDocument.from_file("document.ps")
eps = PsDocument.from_file("illustration.eps")
print("Is EPS:", eps.is_eps)

Aby załadować z surowych bajtów (np. z przesyłki lub strumienia sieciowego), użyj from_bytes():

from aspose.page.ps.document import PsDocument

with open("document.ps", "rb") as f:
    data = f.read()
doc = PsDocument.from_bytes(data)

Eksportowanie do PDF

Wywołaj to_pdf() na załadowanym PsDocument, aby uzyskać tablicę bajtów PDF. Zapisz wynik na dysk lub zwróć go bezpośrednio z obsługi HTTP.

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)

Eksportowanie do PNG lub JPEG

Przekaż instancję ImageSaveOptions do to_image(). Ustaw format na "png" lub "jpeg" oraz dpi na żądaną rozdzielczość.

from pathlib import Path
from aspose.page.ps.document import PsDocument
from aspose.page.ps.output import ImageSaveOptions

eps = PsDocument.from_file("illustration.eps")
opts = ImageSaveOptions(format="png", dpi=150)
Path("output.png").write_bytes(eps.to_image(opts))

Odczytywanie metadanych EPS DSC

PsDocument.dsc zwraca instancję DscMetadata, gdy w pliku EPS znajdują się komentarze nagłówka DSC. Użyj jej do odczytania pól bounding box, title i creator przed konwersją.

from aspose.page.ps.document import PsDocument

eps = PsDocument.from_file("illustration.eps")
dsc = eps.dsc
if dsc is not None:
    print("Title:", dsc.title)
    print("Bounding box:", dsc.bounding_box)
    print("Creator:", dsc.creator)

Wskazówki i najlepsze praktyki

  • Używaj from_bytes() podczas przetwarzania przesyłek, aby uniknąć zapisywania plików tymczasowych.
  • Sprawdź is_eps, aby rozgałęzić logikę przy przetwarzaniu mieszanej partii plików PS i EPS.
  • Ustaw dpi=150 lub wyższą wartość dla wyjścia rastrowego używanego w systemach podglądu dokumentów.
  • Wszystkie metody konwersji zwracają bytes — przechowuj je lub przesyłaj strumieniowo bez operacji I/O na dysku, jeśli to potrzebne.

Typowe problemy

ProblemPrzyczynaRozwiązanie
FileNotFoundErrorŚcieżka przekazana do from_file() nie istniejeSprawdź ścieżkę pliku przed wywołaniem from_file()
Pusty wynik PDFPlik PS nie zawiera renderowalnej treściSprawdź kod źródłowy PS pod kątem brakujących operatorów showpage
Raster o niskiej rozdzielczościDomyślne DPI wynosi 96Użyj ImageSaveOptions(dpi=150) lub wyższego

FAQ

Czy mogę konwertować pliki EPS na PDF?

Tak. PsDocument.from_file() akceptuje zarówno rozszerzenia .ps, jak i .eps. Wywołaj to_pdf() na zwróconym dokumencie, aby uzyskać bajty PDF.

Czy konwersja wymaga Ghostscript?

Nie. Biblioteka nie ma zależności od Ghostscript ani żadnego natywnego środowiska uruchomieniowego.

Czy mogę przetwarzać pliki PS bez zapisywania ich na dysku?

Tak. Użyj from_bytes(), aby załadować z obiektu bytes i użyj zwróconego bytes z to_pdf() lub to_image() bezpośrednio — nie trzeba zapisywać plików.


API Reference Podsumowanie

Klasa / MetodaOpis
PsDocument.from_file(path)Wczytaj PS lub EPS ze ścieżki pliku
PsDocument.from_bytes(data)Wczytaj PS lub EPS z surowych bajtów
PsDocument.to_pdf(options)Eksportuj do bajtów PDF
PsDocument.to_image(options)Eksportuj do bajtów obrazu rastrowego
PsDocument.is_epsPrawda, jeśli wczytany plik jest EPS
PsDocument.dscMetadane nagłówka DSC (pliki EPS)
DscMetadata.bounding_boxPole ograniczające EPS jako (x0, y0, x1, y1)
DscMetadata.titleTytuł z nagłówka DSC EPS
ImageSaveOptions.formatFormat wyjściowy: “png” lub “jpeg”
ImageSaveOptions.dpiRozdzielczość wyjściowa w DPI

Zobacz także

 Polski