Introductie
PostScript (PS) en Encapsulated PostScript (EPS) zijn vector-documentformaten die worden gebruikt in print-workflows, legacy publicatiesystemen en grafische pipelines. Aspose.Page FOSS voor Python biedt PsDocument — een enkele klasse die zowel .ps als .eps bestanden afhandelt — met methoden om ze naar PDF of rasterafbeeldingen te exporteren direct vanuit Python code.
De bibliotheek vereist geen Ghostscript-installatie, geen Adobe-runtime en geen native systeemafhankelijkheden. Hij draait op Windows, Linux en macOS. Installeer hem met pip en gebruik hem meteen in elke Python 3.10+ omgeving.
PS- en EPS-bestanden laden
PsDocument biedt twee klassmethoden voor het laden van een document. from_file() leest van een bestandspad; from_bytes() accepteert ruwe bytes van een stream of 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)
De is_eps-eigenschap retourneert True als het document een EPS-bestand is, wat nuttig is bij het verwerken van een gemengde batch van PS- en EPS-bestanden via hetzelfde codepad.
Exporteren naar PDF
Roep to_pdf() aan op een geladen PsDocument om de uitvoer te verkrijgen als een bytes object. Het resultaat is een geldige PDF-bytestroom die naar schijf geschreven, in een database opgeslagen, of geretourneerd kan worden vanuit een HTTP endpoint.
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)
Er is geen optiesobject vereist voor een standaard PDF-export. De to_pdf() methode accepteert een optionele optiesparameter voor geavanceerde gebruiksscenario’s.
Exporteren naar rasterafbeeldingen
Om een PS- of EPS-document naar een rasterafbeelding te renderen, geef een ImageSaveOptions instantie door aan to_image(). Stel format in op "png" of "jpeg" en dpi om de uitvoerresolutie te regelen. De methode retourneert een bytes object dat de gecodeerde afbeelding bevat.
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)
Voor JPEG-uitvoer, wijzig format="jpeg". De dpi eigenschap heeft standaard 96 wanneer niet ingesteld.
EPS-metadata lezen
PsDocument biedt een dsc eigenschap die een DscMetadata instantie retourneert wanneer DSC-commentaren aanwezig zijn in het bestand. DscMetadata biedt gestructureerde toegang tot de coördinaten van de begrenzingskader, paginagrootte, oriëntatie, titel en maker-velden die uit de EPS-header zijn geparseerd.
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)
Batchconversie
Omdat alle conversiemethoden bytes retourneren en bestandspaden of ruwe bytes als invoer accepteren, is batchverwerking direct te implementeren met standaard Python-lussen of concurrent.futures.
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)
Hetzelfde patroon geldt voor EPS-bestanden door het glob-patroon te wijzigen naar "*.eps".