Einleitung

PostScript (PS) und Encapsulated PostScript (EPS) sind Vektor-Dokumentformate, die in Druck-Workflows, alten Veröffentlichungssystemen und Grafik-Pipelines verwendet werden. Aspose.Page FOSS für Python bietet PsDocument — eine einzelne Klasse, die sowohl .ps als auch .eps Dateien verarbeitet — mit Methoden, um sie direkt aus Python-Code in PDF oder Rasterbilder zu exportieren.

Die Bibliothek erfordert keine Ghostscript-Installation, keine Adobe-Laufzeitumgebung und keine nativen Systemabhängigkeiten. Sie läuft unter Windows, Linux und macOS. Installieren Sie sie mit pip und verwenden Sie sie sofort in jeder Python 3.10+-Umgebung.


Laden von PS- und EPS-Dateien

PsDocument stellt zwei Klassenmethoden zum Laden eines Dokuments bereit. from_file() liest von einem Dateipfad; from_bytes() akzeptiert rohe Bytes aus einem Stream oder Upload.

from aspose.page.ps.document import PsDocument

# Load from file path
ps = PsDocument.from_file("document.ps")
eps = PsDocument.from_file("illustration.eps")

# Load from bytes (network stream, upload, etc.)
with open("document.ps", "rb") as f:
    data = f.read()
ps_from_bytes = PsDocument.from_bytes(data)

Die is_eps-Eigenschaft gibt True zurück, wenn das Dokument eine EPS-Datei ist, was nützlich ist, wenn ein gemischter Stapel von PS- und EPS-Dateien über denselben Codepfad verarbeitet wird.


Exportieren nach PDF

Rufen Sie to_pdf() auf einem geladenen PsDocument auf, um die Ausgabe als bytes-Objekt zu erhalten. Das Ergebnis ist ein gültiger PDF-Byte-Stream, der auf die Festplatte geschrieben, in einer Datenbank gespeichert oder von einem HTTP-Endpunkt zurückgegeben werden kann.

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)

Ein Optionsobjekt ist für einen Standard-PDF-Export nicht erforderlich. Die to_pdf()-Methode akzeptiert einen optionalen Optionsparameter für erweiterte Anwendungsfälle.


Exportieren in Rasterbilder

Um ein PS- oder EPS-Dokument in ein Rasterbild zu rendern, übergeben Sie eine ImageSaveOptions-Instanz an to_image(). Setzen Sie format auf "png" oder "jpeg" und dpi, um die Ausgabeauflösung zu steuern. Die Methode gibt ein bytes-Objekt zurück, das das codierte Bild enthält.

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)
png_bytes = eps.to_image(opts)
Path("output.png").write_bytes(png_bytes)

Für JPEG-Ausgabe ändern Sie format="jpeg". Die dpi-Eigenschaft hat standardmäßig den Wert 96, wenn sie nicht gesetzt ist.


Lesen von EPS-Metadaten

PsDocument stellt eine dsc-Eigenschaft bereit, die eine DscMetadata-Instanz zurückgibt, wenn DSC-Kommentare in der Datei vorhanden sind. DscMetadata bietet strukturierten Zugriff auf die Koordinaten des Begrenzungsrahmens, die Seitengröße, Orientierung, Titel und Ersteller-Felder, die aus dem EPS-Header geparst wurden.

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("HiRes bounding box:", dsc.hires_bounding_box)

Batch-Konvertierung

Da alle Konvertierungsmethoden bytes zurückgeben und Dateipfade oder Rohbytes als Eingabe akzeptieren, lässt sich die Batch-Verarbeitung direkt mit Standard-Python-Schleifen oder concurrent.futures implementieren.

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

input_dir = Path("ps-files")
output_dir = Path("pdf-output")
output_dir.mkdir(exist_ok=True)

for ps_file in input_dir.glob("*.ps"):
    doc = PsDocument.from_file(str(ps_file))
    out_path = output_dir / ps_file.with_suffix(".pdf").name
    out_path.write_bytes(doc.to_pdf())
    print("Converted:", ps_file.name)

Das gleiche Muster gilt für EPS-Dateien, indem das Glob-Muster zu "*.eps" geändert wird.


Erste Schritte

Verwandte Ressourcen