Introduction
PostScript (PS) i Encapsulated Post Script (EPS), són formats de document vectorial utilitzats en el sistema d’impressió digital. Flusos de treball d’impressió, sistemes d ’ publicació legats i canonades gràfiques. Aspose. Python proporciona: PsDocument una sola classe que tracta ambdues. .ps i de la .eps arxius amb mètodes per exportar-los a imatges PDF o raster directament des del codi Python.
La biblioteca no requereix instal·lació de Ghostscript, cap temps d’execució Adobe i cap dependència del sistema natiu. Corre en Windows, Linux i macOS. Installa-la amb pip i utilitza-lo immediatament en qualsevol entorn Python 3.10+.
Carrega de fitxers PS i EPS
PsDocument exposa dos mètodes de classe per a carregar un document. from_file() llegeix des d’un ruta del fitxer; from_bytes() accepta bytes bruts d’un flux o subministrament.
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)
El is_eps declaracions de propietat True si el document és un fitxer EPS, que és útil quan: processar un lot mixt de fitxers PS i EPS a través d’una mateixa ruta de codi.
Exportació a PDF
Call to_pdf() en un carregat PsDocument per obtenir la sortida com a bytes L’objecte. el resultat és un flux de bytes PDF vàlid que es pot escriure a disc, emmagatzemar en una base de dades o retornats des d’un punt final 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)
No es requereix cap objecte d’opcions per a una exportació PDF predeterminada. to_pdf() El mètode accepta un paràmetre opcional per a casos d’ús avançat.
Exportació a imatges de raster
Per fer un document PS o EPS a una imatge raster, passa un ImageSaveOptions instància a to_image().Set. format a la "png" o de la seva "jpeg" i de la dpi per controlar la resolució de sortida. El mètode retorna un bytes object que conté la imatge codificada.
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)
Per a la sortida JPEG, canvi format="jpeg".El . dpi la propietat s’estableix en 96 quan no està establerta.
Llegir metadades EPS
PsDocument exposa una dsc propietat que retorna un DscMetadata instància quan DSC les observacions estan presents en el fitxer. DscMetadata proporciona accés estructurat a la caixa de limitació. Coordenades, mida de pàgina, orientació, títol i camps creadors analitzats des de l’encapçallament EPS.
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)
Conversió Batx
Perquè tots els mètodes de conversió retornen bytes i accepta pistes de fitxer o bytes com a entrada, el processament de batches és directe per implementar amb bucles Python estàndard o 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)
El mateix patró s’aplica als arxius EPS canviant el patroc de glob a "*.eps".