Introdução
PostScript (PS) e Encapsulated Post Script (EPS), são formatos de documento vetorial utilizados em: fluxos de trabalho, sistemas de publicação legados e canais gráficos. Aspose.Page FOSS for Python fornece: PsDocument uma única classe que trata de ambos os tipos de dados. .ps e a) .eps Arquivos com métodos para exportá-los para imagens PDF ou raster diretamente a partir do código Python.
A biblioteca não requer instalação de Ghostscript, nenhum tempo de execução do Adobe e nenhuma dependência nativa do sistema. Ele funciona no Windows, Linux e macOS. Instale-o com pip e use-a imediatamente em qualquer ambiente Python 3.10+.
Carregamento de ficheiros PS e EPS
PsDocument expõe dois métodos de classe para carregar um documento. from_file() Leia a partir de um caminho de ficheiro; from_bytes() Aceita bytes brutos de um stream ou upload.
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)
A Comissão is_eps declarações de propriedade True se o documento for um ficheiro EPS, que é útil quando: Processar um lote misto de ficheiros PS e EPS através do mesmo caminho de código.
Exportar para PDF
Chama-me . to_pdf() Em um carregado. PsDocument para obter a saída como um bytes O objeto. O resultado é um fluxo de bytes PDF válido que pode ser escrito em disco, armazenado num banco de dados ou Retornado de um ponto 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)
Não é necessário nenhum objeto de opções para uma exportação PDF padrão. O to_pdf() O método aceita uma Parâmetro opcional para casos de utilização avançada.
Exportação para imagens raster
Para render um documento PS ou EPS para uma imagem raster, passar um ImageSaveOptions instância a to_image().- Está pronto . format a) para o "png" ou a) "jpeg" e a) dpi para controlar a resolução de saída. O método retorna um bytes Objeto que contém a imagem 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)
Para saída JPEG, alteração format="jpeg".O . dpi Propriedade padrão para 96 quando não definida.
Leitura de metadados EPS
PsDocument expõe um dsc propriedade que retorna um DscMetadata caso em que o DSC Os comentários estão presentes no processo. DscMetadata fornece acesso estruturado à caixa de limitação; Coordenadas, tamanho da página, orientação, título e campos de criador analisados a partir do cabeçalho 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)
Conversão Batch
Porque todos os métodos de conversão retornam bytes e aceitar caminhos de arquivo ou bytes brutos como entrada, processamento por lotes é direto para implementar com loops Python padrão 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)
O mesmo padrão aplica-se aos arquivos EPS, alterando o padro glob a: "*.eps".