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=150lub 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
| Problem | Przyczyna | Rozwiązanie |
|---|---|---|
FileNotFoundError | Ścieżka przekazana do from_file() nie istnieje | Sprawdź ścieżkę pliku przed wywołaniem from_file() |
| Pusty wynik PDF | Plik PS nie zawiera renderowalnej treści | Sprawdź kod źródłowy PS pod kątem brakujących operatorów showpage |
| Raster o niskiej rozdzielczości | Domyślne DPI wynosi 96 | Uż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 / Metoda | Opis |
|---|---|
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_eps | Prawda, jeśli wczytany plik jest EPS |
PsDocument.dsc | Metadane nagłówka DSC (pliki EPS) |
DscMetadata.bounding_box | Pole ograniczające EPS jako (x0, y0, x1, y1) |
DscMetadata.title | Tytuł z nagłówka DSC EPS |
ImageSaveOptions.format | Format wyjściowy: “png” lub “jpeg” |
ImageSaveOptions.dpi | Rozdzielczość wyjściowa w DPI |