Conversione PS ed EPS
Conversione PS e EPS
PsDocument è il punto di ingresso per caricare i file PostScript (.ps) e i file Encapsulated PostScript (.eps). Entrambi i formati sono gestiti dalla stessa classe tramite la stessa interfaccia.
Caricamento di un file PS o EPS
Usa PsDocument.from_file() per caricare un documento da un percorso file. La proprietà is_eps indica se il file caricato è un file EPS.
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)Per caricare da byte grezzi (ad es. un upload o uno stream di rete), usa from_bytes():
from aspose.page.ps.document import PsDocument
with open("document.ps", "rb") as f:
data = f.read()
doc = PsDocument.from_bytes(data)Esportazione in PDF
Chiama to_pdf() su un PsDocument caricato per ottenere un array di byte PDF. Scrivi il risultato su disco o restituiscilo direttamente da un gestore 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)Esportazione in PNG o JPEG
Passa un’istanza ImageSaveOptions a to_image(). Imposta format su "png" o "jpeg" e dpi sulla risoluzione desiderata.
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))Lettura dei metadati EPS DSC
PsDocument.dsc restituisce un’istanza DscMetadata quando i commenti dell’intestazione DSC sono presenti nel file EPS. Usala per leggere i campi bounding box, titolo e creatore prima della conversione.
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)Suggerimenti e migliori pratiche
- Usa
from_bytes()durante l’elaborazione degli upload per evitare di scrivere file temporanei. - Controlla
is_epsper ramificare la logica durante l’elaborazione di un batch misto di file PS ed EPS. - Imposta
dpi=150o superiore per l’output raster utilizzato nei sistemi di anteprima dei documenti. - Tutti i metodi di conversione restituiscono
bytes— archiviali o trasmettili senza I/O su disco, se necessario.
Problemi comuni
| Problema | Causa | Correzione |
|---|---|---|
FileNotFoundError | Il percorso passato a from_file() non esiste | Verifica il percorso del file prima di chiamare from_file() |
| Output PDF vuoto | Il file PS non contiene contenuto renderizzabile | Ispeziona il sorgente PS per gli operatori showpage mancanti |
| Raster a bassa risoluzione | Il DPI predefinito è 96 | Passa ImageSaveOptions(dpi=150) o superiore |
FAQ
Posso convertire i file EPS in PDF?
Sì. PsDocument.from_file() accetta entrambe le estensioni .ps e .eps. Chiama to_pdf() sul documento restituito per ottenere i byte PDF.
La conversione richiede Ghostscript?
No. La libreria non dipende da Ghostscript né da alcun runtime nativo.
Posso elaborare i file PS senza scrivere su disco?
Sì. Usa from_bytes() per caricare da un oggetto bytes e utilizza direttamente il bytes restituito da to_pdf() o to_image() — non è necessario scrivere file.
API Reference Riepilogo
| Classe / Metodo | Descrizione |
|---|---|
PsDocument.from_file(path) | Carica PS o EPS da un percorso file |
PsDocument.from_bytes(data) | Carica PS o EPS da byte grezzi |
PsDocument.to_pdf(options) | Esporta in byte PDF |
PsDocument.to_image(options) | Esporta in byte di immagine raster |
PsDocument.is_eps | True se il file caricato è EPS |
PsDocument.dsc | Metadati dell’intestazione DSC (file EPS) |
DscMetadata.bounding_box | Bounding box EPS come (x0, y0, x1, y1) |
DscMetadata.title | Titolo dall’intestazione DSC EPS |
ImageSaveOptions.format | Formato di output: “png” o “jpeg” |
ImageSaveOptions.dpi | Risoluzione di output in DPI |