PS- en EPS-conversie

PS- en EPS-conversie

PS- en EPS-conversie

PsDocument is het instappunt voor het laden van PostScript (.ps) en Encapsulated PostScript (.eps) bestanden. Beide formaten worden afgehandeld door dezelfde klasse via dezelfde interface.


Een PS- of EPS-bestand laden

Gebruik PsDocument.from_file() om een document te laden vanuit een bestandspad. De is_eps eigenschap geeft aan of het geladen bestand een EPS-bestand is.

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)

Om te laden vanuit ruwe bytes (bijv. een upload of netwerkstream), gebruik from_bytes():

from aspose.page.ps.document import PsDocument

with open("document.ps", "rb") as f:
    data = f.read()
doc = PsDocument.from_bytes(data)

Exporteren naar PDF

Roep to_pdf() aan op een geladen PsDocument om een PDF-byte-array te verkrijgen. Schrijf het resultaat naar schijf of retourneer het direct vanuit een HTTP handler.

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)

Exporteren naar PNG of JPEG

Geef een ImageSaveOptions-instantie door aan to_image(). Stel format in op "png" of "jpeg" en dpi op de gewenste resolutie.

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))

Lezen van EPS DSC-metadata

PsDocument.dsc retourneert een DscMetadata-instantie wanneer DSC-headercommentaren aanwezig zijn in het EPS-bestand. Gebruik het om de bounding box, titel- en maker-velden te lezen vóór het converteren.

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)

Tips en best practices

  • Gebruik from_bytes() bij het verwerken van uploads om het schrijven van tijdelijke bestanden te voorkomen.
  • Controleer is_eps om de logica te vertakken bij het verwerken van een gemengde batch van PS- en EPS-bestanden.
  • Stel dpi=150 of hoger in voor rasteruitvoer die wordt gebruikt in documentpreviewsystemen.
  • Alle conversiemethoden retourneren bytes — sla ze op of stream ze zonder schijf-I/O indien nodig.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
FileNotFoundErrorPad dat aan from_file() is doorgegeven bestaat nietControleer het bestandspad voordat je from_file() aanroept
Lege PDF-uitvoerPS-bestand bevat geen renderbare inhoudInspecteer de PS-bron op ontbrekende showpage-operatoren
Lage-resolutie rasterStandaard DPI is 96Geef ImageSaveOptions(dpi=150) of hoger door

FAQ

Kan ik EPS-bestanden naar PDF converteren?

Ja. PsDocument.from_file() accepteert zowel de extensies .ps als .eps. Roep to_pdf() aan op het geretourneerde document om PDF-bytes te verkrijgen.

Vereist de conversie Ghostscript?

Nee. De bibliotheek heeft geen afhankelijkheid van Ghostscript of een native runtime.

Kan ik PS-bestanden verwerken zonder naar schijf te schrijven?

Ja. Gebruik from_bytes() om te laden vanuit een bytes-object en gebruik de geretourneerde bytes van to_pdf() of to_image() rechtstreeks — er hoeven geen bestanden te worden geschreven.


API Reference Samenvatting

Klasse / MethodeBeschrijving
PsDocument.from_file(path)Laad PS of EPS vanaf een bestandspad
PsDocument.from_bytes(data)Laad PS of EPS vanuit ruwe bytes
PsDocument.to_pdf(options)Exporteer naar PDF-bytes
PsDocument.to_image(options)Exporteer naar rasterafbeeldingsbytes
PsDocument.is_epsWaar als het geladen bestand EPS is
PsDocument.dscDSC-headermetadata (EPS-bestanden)
DscMetadata.bounding_boxEPS-boundingbox als (x0, y0, x1, y1)
DscMetadata.titleTitel uit EPS DSC-header
ImageSaveOptions.formatUitvoerformaat: “png” of “jpeg”
ImageSaveOptions.dpiUitvoerresolutie in DPI

Zie ook

 Nederlands