PS- und EPS-Konvertierung
PS- und EPS-Konvertierung
PsDocument ist der Einstiegspunkt zum Laden von PostScript (.ps) und eingekapselten PostScript (.eps) Dateien. Beide Formate werden von derselben Klasse über dieselbe Schnittstelle verarbeitet.
Laden einer PS- oder EPS-Datei
Verwenden Sie PsDocument.from_file(), um ein Dokument über einen Dateipfad zu laden. Die Eigenschaft is_eps gibt an, ob die geladene Datei eine EPS-Datei ist.
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)Um aus rohen Bytes zu laden (z.B. ein Upload oder Netzwerk-Stream), verwenden Sie from_bytes():
from aspose.page.ps.document import PsDocument
with open("document.ps", "rb") as f:
data = f.read()
doc = PsDocument.from_bytes(data)Exportieren nach PDF
Rufen Sie to_pdf() auf einem geladenen PsDocument auf, um ein PDF-Byte-Array zu erhalten. Schreiben Sie das Ergebnis auf die Festplatte oder geben Sie es direkt von einem HTTP-Handler zurück.
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)Exportieren als PNG oder JPEG
Übergeben Sie eine ImageSaveOptions-Instanz an to_image(). Setzen Sie format auf "png" oder "jpeg" und dpi auf die gewünschte Auflösung.
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))Lesen von EPS DSC-Metadaten
PsDocument.dsc gibt eine DscMetadata-Instanz zurück, wenn DSC-Headerkommentare in der EPS-Datei vorhanden sind. Verwenden Sie sie, um Bounding box, title und creator Felder vor der Konvertierung zu lesen.
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)Tipps und bewährte Verfahren
- Verwenden Sie
from_bytes()beim Verarbeiten von Uploads, um das Schreiben temporärer Dateien zu vermeiden. - Prüfen Sie
is_eps, um die Logik zu verzweigen, wenn Sie einen gemischten Stapel von PS- und EPS-Dateien verarbeiten. - Setzen Sie
dpi=150oder höher für Rasterausgaben, die in Dokumentvorschau-Systemen verwendet werden. - Alle Konvertierungsmethoden geben
byteszurück — speichern oder streamen Sie sie bei Bedarf ohne Festplatten-E/A.
Häufige Probleme
| Problem | Ursache | Lösung |
|---|---|---|
FileNotFoundError | Der an from_file() übergebene Pfad existiert nicht | Überprüfen Sie den Dateipfad, bevor Sie from_file() aufrufen |
| Leere PDF-Ausgabe | PS-Datei enthält keinen renderbaren Inhalt | Untersuchen Sie den PS-Quellcode auf fehlende showpage-Operatoren |
| Niedrigauflösendes Raster | Standard-DPI ist 96 | Pass ImageSaveOptions(dpi=150) oder höher |
FAQ
Kann ich EPS-Dateien in PDF konvertieren?
Ja. PsDocument.from_file() akzeptiert sowohl .ps als auch .eps Erweiterungen. Rufen Sie to_pdf() auf dem zurückgegebenen Dokument auf, um PDF-Bytes zu erhalten.
Benötigt die Konvertierung Ghostscript?
Nein. Die Bibliothek hat keine Abhängigkeit von Ghostscript oder irgendeiner nativen Laufzeit.
Kann ich PS-Dateien verarbeiten, ohne sie auf die Festplatte zu schreiben?
Ja. Verwenden Sie from_bytes(), um aus einem bytes-Objekt zu laden, und nutzen Sie das zurückgegebene bytes von to_pdf() oder to_image() direkt — es müssen keine Dateien geschrieben werden.
API Reference Zusammenfassung
| Klasse / Methode | Beschreibung |
|---|---|
PsDocument.from_file(path) | Laden Sie PS oder EPS aus einem Dateipfad |
PsDocument.from_bytes(data) | Lade PS oder EPS aus Rohbytes |
PsDocument.to_pdf(options) | Exportiere zu PDF-Bytes |
PsDocument.to_image(options) | Exportiere zu Rasterbild-Bytes |
PsDocument.is_eps | True, wenn die geladene Datei EPS ist |
PsDocument.dsc | DSC-Header-Metadaten (EPS-Dateien) |
DscMetadata.bounding_box | EPS-Bounding-Box als (x0, y0, x1, y1) |
DscMetadata.title | Titel aus dem EPS DSC-Header |
ImageSaveOptions.format | Ausgabeformat: “png” oder “jpeg” |
ImageSaveOptions.dpi | Ausgabeauflösung in DPI |