Úvod

PostScript (PS) a Encapsulated PostScript (EPS) jsou vektorové formáty dokumentů používané v tiskových pracovních postupech, starších vydavatelských systémech a grafických pipelinech. Aspose.Page FOSS pro Python poskytuje PsDocument — jedinou třídu, která zpracovává jak .ps, tak .eps soubory — s metodami pro export do PDF nebo rastrových obrázků přímo z Python kódu.

Knihovna nevyžaduje instalaci Ghostscriptu, žádné Adobe runtime ani nativní systémové závislosti. Funguje na Windows, Linuxu i macOS. Nainstalujte ji pomocí pip a použijte okamžitě v jakémkoli prostředí Python 3.10+.


Načítání souborů PS a EPS

PsDocument poskytuje dvě metody třídy pro načtení dokumentu. from_file() načte ze souborové cesty; from_bytes() přijímá surové bajty ze streamu nebo nahrání.

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)

Vlastnost is_eps vrací True, pokud je dokument souborem EPS, což je užitečné při zpracování smíšené dávky souborů PS a EPS stejnou cestou kódu.


Export do PDF

Zavolejte to_pdf() na načteném PsDocument, abyste získali výstup jako objekt bytes. Výsledek je platný PDF bytový proud, který lze zapsat na disk, uložit do databáze nebo vrátit z koncového bodu 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)

Pro výchozí export PDF není vyžadován žádný objekt možností. Metoda to_pdf() přijímá volitelný parametr options pro pokročilé případy použití.


Exportování do rastrových obrázků

Pro vykreslení dokumentu PS nebo EPS na rastrový obrázek předáte instanci ImageSaveOptions do to_image(). Nastavte format na "png" nebo "jpeg" a dpi pro řízení rozlišení výstupu. Metoda vrací objekt bytes obsahující zakódovaný obrázek.

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)

Pro výstup JPEG změňte format="jpeg". Vlastnost dpi má výchozí hodnotu 96, pokud není nastavena.


Čtení metadat EPS

PsDocument vystavuje vlastnost dsc, která vrací instanci DscMetadata, pokud jsou v souboru přítomny DSC komentáře. DscMetadata poskytuje strukturovaný přístup ke koordinátám ohraničujícího rámečku, velikosti stránky, orientaci, názvu a poli tvůrce, které jsou parsovány z hlavičky 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)

Dávková konverze

Protože všechny konverzní metody vracejí bytes a přijímají cesty k souborům nebo surová data jako vstup, dávkové zpracování je přímé implementovat pomocí standardních Python smyček nebo 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)

Stejný vzor se použije pro soubory EPS změnou glob vzoru na "*.eps".


Začínáme

Související zdroje