Introduction
PostScript (PS) et Encapsulated Postcript (EPS), sont des formats de document vectoriels utilisés dans le cadre du flux de travail d’impression, systèmes d’édition des héritage et pipelines graphiques. Aspose.Page FOSS pour Python fournit PsDocument Une classe qui gère les deux. .ps et .eps Les fichiers - avec des méthodes pour les exporter dans le PDF ou raster images directement du code Python.
La bibliothèque ne nécessite aucune installation de Ghostscript, aucun temps d’exécution Adobe et aucune dépendance du système natif. Il fonctionne sur Windows, Linux et macOS. Installez-le avec un pip et utilisez-la immédiatement dans tout environnement Python 3.10+.
Réserver les fichiers PS et EPS
PsDocument Il présente deux méthodes de classe pour charger un document. from_file() Lire de A Le chemin de fichier ; from_bytes() Accepte les bytes de base d’un courant ou d’une téléchargement.
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)
Le is_eps Remboursement de propriété True si le document est un fichier EPS, qui est utile lorsque Traiter un ensemble de fichiers PS et EPS par le même chemin de code.
Exportation en PDF
Appel à to_pdf() sur un chargé PsDocument Pour obtenir la production en tant que bytes Objet : Le le résultat est un flux de byte PDF valide qui peut être écrit sur disque, stocké dans une base de données ou Retour sur un endpoint 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)
Aucun objet d’options n’est requis pour un exportateur PDF par défaut. to_pdf() La méthode accepte une paramètre optionnel pour les cas d’utilisation avancés.
Exportation à Raster Images
Pour rendre un document PS ou EPS à une image raster, passez un ImageSaveOptions L’instant à to_image().- Sets format à "png" ou "jpeg" et dpi - Contrôler la résolution de production. La méthode revient à bytes Objet contenant l’image encodée.
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)
Pour le JPEG, changement format="jpeg".Le dpi 96 de la propriété si elle n’est pas établie.
Lire les métadonnées EPS
PsDocument Exposé à dsc La propriété qui revient à DscMetadata Lorsque le DSC Les commentaires sont présents dans le fichier. DscMetadata Il offre un accès structuré à la boîte de bord coordonnées, taille de page, orientation, titre et champs créateurs parsed du clavier 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)
Conversion Batch
Parce que toutes les méthodes de conversion retournent bytes et accepter les voies de fichier ou les bytes crus comme entrées, Le traitement de batch est directement mis en œuvre avec des loops Python standard ou 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)
Le même modèle s’applique aux fichiers EPS en modifiant le modèle glob à "*.eps".