Introduction
PostScript (PS) และ Encapsulated Post Script (EPS), เป็นรูปแบบเอกสารเวคเตอร์ที่ใช้ใน การพิมพ์กระแสการทํางาน ระบบประกาศเก่า และระบบจอ. Aspose. Python ให้การใช้งาน PsDocument คลาสเดียวที่จัดการทั้งสอง .ps และ .eps ไฟล์ ด้วยวิธีการส่งออกเป็น PDF หรือภาพราสเตอร์โดยตรงจากรหัส Python.
ห้องสมุดไม่ต้องการการติดตั้ง Ghostscript, ไม่มี Adobe runtime และไม่มีความพึ่งพาระบบพื้นบ้าน. มันทํางานบน Windows, Linux, และ macOS. ติดตั้งมันด้วย pip แล้วใช้ทันทีในสิ่งแวดล้อม Python 3.10+ ใด ๆ.
การอัดไฟล์ PS และ EPS
PsDocument เปิดเผยวิธีการสองชั้นในการอัดเอกสาร. from_file() อ่านจาก a เส้นทางไฟล์; from_bytes() รับเอาไบท์ raw จากสตรีมหรือการอัพโหลด.
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)
การ is_eps รายงานทรัพย์สิน True ถ้าเอกสารเป็นไฟล์ EPS ซึ่งจะใช้ได้เมื่อ การประมวลผลชุดผสมของไฟล์ PS และ EPS ผ่านเส้นทางโค้ดเดียวกัน.
การส่งออกเป็น PDF
Call to_pdf() บนเครื่องบรรทุก PsDocument เพื่อให้ได้ผลิตเป็น bytes วัตถุของ ผลคือ PDF ไบต์สตรีมที่ถูกต้อง ที่สามารถเขียนเข้าในดิสก์ หรือเก็บไว้ในฐานข้อมูล, หรือ กลับจากจุดปลาย 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)
ไม่จําเป็นต้องใช้ตัวเลือกสําหรับการส่งออก PDF โดยพื้นฐาน. to_pdf() วิธีการรับ a ปารามีเตอร์ทางเลือกที่ไม่รับสมัครสําหรับกรณีการใช้งานระดับสูง.
การส่งออกภาพราสเตอร์
เพื่อให้เอกสาร PS หรือ EPS เป็นภาพราสเตอร์ ให้ผ่านตัวเลข ImageSaveOptions ตัวอย่างที่ to_image().ติดตั้ง format ไปยัง "png" หรือ "jpeg" และ dpi เพื่อควบคุมความละเอียดการออก. วิธีการคืน a bytes อัตถุที่มีภาพที่ถูกรหัสไว้.
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)
สําหรับการออก JPEG เปลี่ยนแปลง format="jpeg".- ครับ dpi property จะพังเป็น 96 เมื่อไม่ตั้งค่า.
การอ่านเมตาข้อมูล EPS
PsDocument เปิดเผย a dsc เอกสารที่คืน a DscMetadata ตัวอย่างเมื่อ DSC ความเห็นในเอกสารนี้มีอยู่. DscMetadata ให้การเข้าถึงกรอบขัดได้อย่างมีโครงสร้าง คอร์ดอเนตขนาดหน้า แนวทาง ชื่อ และสนามผู้สร้าง ที่พาราจากหัว 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)
การแปลงแบทช์
เพราะวิธีการแปลงทั้งหมดจะกลับ bytes และยอมรับเส้นทางไฟล์หรือไบต์ทรัพย์เป็นการเข้า, การประมวลผล batch จะถูกนําไปใช้โดยตรงกับ Python loop มาตรฐาน หรือ 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)
รูปแบบเดียวกันจะใช้กับไฟล์ EPS โดยการเปลี่ยนรูปแบบ glob เป็น "*.eps".