परिचय

PostScript (PS) और Encapsulated PostScript (EPS) वेक्टर दस्तावेज़ फ़ॉर्मेट हैं जो प्रिंट वर्कफ़्लो, लेगेसी पब्लिशिंग सिस्टम, और ग्राफ़िक्स पाइपलाइन में उपयोग होते हैं। Aspose.Page FOSS for Python प्रदान करता है PsDocument — एक सिंगल क्लास जो दोनों .ps और .eps फ़ाइलों को संभालती है — साथ ही PDF या रास्टर इमेज में निर्यात करने के लिए मेथड्स प्रदान करती है, सीधे Python कोड से।

इस लाइब्रेरी को Ghostscript इंस्टॉलेशन, Adobe रनटाइम, या किसी नेटीव सिस्टम डिपेंडेंसी की आवश्यकता नहीं है। यह Windows, Linux, और macOS पर चलती है। इसे pip के साथ इंस्टॉल करें और किसी भी Python 3.10+ पर्यावरण में तुरंत उपयोग करें।


PS और EPS फ़ाइलों को लोड करना

PsDocument दस्तावेज़ लोड करने के लिए दो क्लास मेथड्स उपलब्ध कराता है। from_file() फ़ाइल पाथ से पढ़ता है; from_bytes() स्ट्रीम या अपलोड से रॉ बाइट्स को स्वीकार करता है।

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 में निर्यात करना

लोड किए गए PsDocument पर to_pdf() को कॉल करें ताकि आउटपुट को 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() मेथड उन्नत उपयोग मामलों के लिए वैकल्पिक options पैरामीटर स्वीकार करता है।


रेस्टर इमेजेज़ में निर्यात

PS या EPS दस्तावेज़ को रेस्टर इमेज में रेंडर करने के लिए, एक ImageSaveOptions इंस्टेंस को to_image() में पास करें। format को "png" या "jpeg" पर सेट करें और आउटपुट रिज़ॉल्यूशन को नियंत्रित करने के लिए dpi सेट करें। यह मेथड एक 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 प्रॉपर्टी डिफ़ॉल्ट रूप से 96 रहती है।


EPS मेटाडेटा पढ़ना

PsDocument एक dsc प्रॉपर्टी प्रदान करता है जो फ़ाइल में DSC टिप्पणियों की उपस्थिति पर एक DscMetadata इंस्टेंस लौटाती है। 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 लौटाती हैं और इनपुट के रूप में फ़ाइल पथ या कच्चे बाइट्स को स्वीकार करती हैं, बैच प्रोसेसिंग को मानक Python लूप या 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 फ़ाइलों पर लागू होता है, बस ग्लोब पैटर्न को "*.eps" में बदल दें।


शुरूआत

संबंधित संसाधन