آخرین به‌روزرسانی: ۲۰ فوریه، ۲۰۲۵

عنوان - پست‌اسکریپت: توضیحی روشن

پست‌اسکریپت چیست؟

پست‌اسکریپت (PS) یک زبان توصیف صفحه (PDL) است که توسط سیستم‌های ادوبی در سال ۱۹۸۲ توسعه داده شد. این زبان عمدتاً در نشر رومیزی، چاپ و طراحی گرافیکی برای توصیف نحوه‌ی رندر شدن متن و تصاویر در یک صفحه استفاده می‌شود.

پست‌اسکریپت: ویژگی‌ها و کاربردها

توضیح پست‌اسکریپت (PS)

پست‌اسکریپت (PS) هم یک زبان توصیف صفحه (PDL) و هم یک زبان برنامه‌نویسی است که دینامیک تایپ و پایه‌گذاری شده بر اساس استک است. در اینجا به معنای آن اشاره می‌شود:

۱. زبان توصیف صفحه (PDL) چیست؟

یک زبان توصیف صفحه مشخص می‌کند که چگونه گرافیک و متن در صفحه‌ی پرینت شده یا نمایش داده‌شده ظاهر شوند. پست‌اسکریپت در پرینترها، نرم‌افزارهای نشر و تایپ دیجیتال برای رندر دقیق فونت‌ها، تصاویر و طرح‌ها استفاده می‌شود.

۲. زبان برنامه‌نویسی پایه‌گذاری شده بر اساس استک چیست؟

پست‌اسکریپت از استک برای پردازش دستورات استفاده می‌کند، به این معنا که از رویکرد آخرین ورودی، اولین خروجی (LIFO) پیروی می‌کند. برای مثال، برای اضافه کردن دو عدد در پست‌اسکریپت، آن‌ها را روی استک قرار می‌دهید و سپس عملگری را برای پردازش آن‌ها فراخوانی می‌کنید:

10 20 add

این دستور 10 و 20 را روی استک قرار می‌دهد، سپس دستور add آن‌ها را از استک برداشته و نتیجه (30) را بر روی استک قرار می‌دهد.

۳. دینامیک تایپ

پست‌اسکریپت نیاز به تعریف نوع‌های صریح ندارد. متغیرها می‌توانند انواع مختلف (اعداد، رشته‌ها، آرایه‌ها و غیره) را بدون نوع‌های پیش‌تعریف‌شده نگه دارند.

۴. استفاده‌ها از پست‌اسکریپت

پست‌اسکریپت عمدتاً برای نشر رومیزی و نشر الکترونیک استفاده می‌شود، به این معنی که به ساخت و چاپ مستندات با کیفیت بالا با کنترل دقیق بر فونت‌ها، طرح و گرافیک‌ها کمک می‌کند.

۵. زبان کامل تورینگ

به عنوان یک زبان کامل تورینگ، پست‌اسکریپت می‌تواند، در تئوری، هر محاسبه‌ای را با توجه به حافظه و زمان کافی انجام دهد. این بدان معناست که می‌توان از آن برای وظایف برنامه‌نویسی عمومی، نه تنها چاپ، استفاده کرد.

۶. تاریخ و توسعه

  • توسعه یافته توسط سیستم‌های ادوبی بین ۱۹۸۲ تا ۱۹۸۴.
  • ایجاد شده توسط جان وارناک، چارلز گشکه، داگ برتس، اد تافت و بیل پاکستون.
  • جدیدترین نسخه، پست‌اسکریپت ۳، در ۱۹۹۷ منتشر شد و عملکرد بهتر، مدیریت رنگ و فشرده‌سازی تصویر را اضافه کرد.

تاریخچه پست‌اسکریپت

تاریخچهٔ پست‌اسکریپت به ۱۹۷۶ برمی‌گردد زمانی که جان کافنی در اوانز و ساترلند ایده‌هایی برای یک زبان توصیف صفحه در حین کار روی یک پایگاه‌داده گرافیکی بسط داد. در همان زمان، Xerox PARC در حال توسعه پرینترهای لیزری بود و به یک استاندارد برای تعریف تصاویر صفحه نیاز داشت. آن‌ها ابتدا فرمت پرس را ایجاد کردند که بعدها به اینترپرس در سال ۱۹۷۸، توسعه‌یافته توسط جان کافنی و مارتین نیوئل تبدیل شد.

تکامل و تاثیر پست‌اسکریپت

در ۱۹۸۲، جان وارناک و چاک گشکه پارک Xerox را ترک کردند و Adobe Systems را تأسیس کردند، جایی که آن‌ها به همراه داگ برتس، اد تافت و بیل پاکستون، پست‌اسکریپت را به عنوان جایگزینی ساده‌تر برای اینترپرس توسعه دادند. این زبان به‌صورت تجاری در ۱۹۸۴ منتشر شد.

نقش اپل در موفقیت پست‌اسکریپت

در ۱۹۸۳، استیو جابز پتانسیل پست‌اسکریپت برای مکینتاش را مشاهده کرد و آن را از ادوبی به مبلغ ۱.۵ میلیون دلار لایسنس کرد، به علاوه ۲.۵ میلیون دلار برای ۲۰٪ سهام شرکت ادوبی. او همچنین سعی کرد، بی‌فایده، ادوبی را خریداری کند. اپل و ادوبی سپس با هم کار کردند تا پست‌اسکریپت را برای پرینتر LaserWriter اپل بهینه کنند که در ۱۹۸۵ عرضه شد و نقش مهمی در انقلاب نشر رومیزی بازی کرد.

پیشرفت ادوبی در رندر و اشاره‌گیری فونت باعث موفقیت پست‌اسکریپت حتی بر روی پرینترهای لیزری Canon با دقت ۳۰۰ نقطه در اینچ شد. ادوبی این تکنولوژی را ثبت نکرد تا آن را به عنوان یک راز تجاری نگه‌دارد.

افول و میراث پست‌اسکریپت

در طول دهه‌های ۱۹۸۰ و ۱۹۹۰، پست‌اسکریپت به طور گسترده در پرینترهای لیزری استفاده می‌شد، اما نیاز به قدرت پردازش و حافظه زیادی داشت که آن را گران‌قیمت می‌کرد. با ارزان‌تر شدن پرینترها و قوی‌تر شدن کامپیوترها، راه‌حل‌های نرم‌افزاری جایگزین پردازش پست‌اسکریپت سخت‌افزاری شدند. تا ۲۰۰۱، بیشتر پرینترهای ارزان‌قیمت پشتیبانی از پست‌اسکریپت را به نفع فناوری جت جوهر و رندر نرم‌افزاری کنار گذاشتند.

با این حال، پست‌اسکریپت همچنان در پرینترهای حرفه‌ای سطح بالا غلبه دارد، جایی که رندر را از کامپیوتر به پرینتر انتقال می‌دهد و عملکرد را بهبود می‌بخشد. علاوه بر این، PDF (نوع قابل حمل سند) — یک فرزند مستقیم پست‌اسکریپت — به استاندارد توزیع سند الکترونیکی تبدیل شده است.

سطح‌های پست‌اسکریپت

پست‌اسکریپت از طریق سطوح مختلفی تکامل یافته است که هر کدام کارایی، عملکرد و بهینگی را بهبود بخشیده‌اند. سه سطح اصلی وجود دارد:

تکامل سطح‌های پست‌اسکریپت

۱. سطح ۱ پست‌اسکریپت (۱۹۸۴)

نسخه اصلی پست‌اسکریپت (سطح ۱، منتشر شده در ۱۹۸۴) به کاربران امکان کنترل دقیق بر طرح‌بندی صفحه با متن، گرافیک و تصاویر را می‌داد و در پرینترهای لیزری اولیه استفاده می‌شد. با این حال، محدود به مقیاس خاکستری بود، پردازش گرافیک‌های پیچیده را به کندی انجام می‌داد و به دلیل عدم وجود فشرده‌سازی تصویر، فایل‌های بزرگ تولید می‌کرد.

  • نسخه اصلی، منتشر شده توسط ادوبی در ۱۹۸۴.
  • ارائه توصیف‌های صفحه مستقل از دستگاه برای متن، گرافیک و تصاویر.
  • امکان کنترل دقیق بر نوع‌نگاری و طرح‌بندی داد.
  • مورد استفاده در پرینترهای پست‌اسکرپیت اولیه، شامل پرینتر LaserWriter اپل.
  • محدودیت‌ها:
    • عدم پشتیبانی از رنگ (فقط مقیاس خاکستری).
    • پردازش کند گرافیک‌های پیچیده.
    • عدم فشرده‌سازی تصویر داخلی، منجر به فایل‌های بسیار بزرگ.

۲. سطح ۲ پست‌اسکریپت (۱۹۹۱)

سطح ۲ پست‌اسکریپت (۱۹۹۱) عملکرد را افزایش داد، چاپ رنگی را اضافه کرد، فایل‌ها را فشرده‌سازی کرد، فونت‌ها را بهبود بخشید و پردازش گرافیک‌های پیچیده را تسریع کرد.

  • بهبود پایداری و کارایی حافظه.
  • اضافه کردن پشتیبانی از چاپ رنگی (CMYK و رنگ‌های خاص).
  • معرفی فشرده‌سازی داده برای کاهش حجم فایل‌ها.
  • امکان پردازش بهبود یافته فونت (فونت‌های نوع ۱ و نوع ۳).
  • معرفی الگوها، فرم‌ها و فونت‌های ترکیبی برای رندر بهتر متن.
  • سرعت پردازش گرافیک‌های پیچیده نسبت به سطح ۱.

۳. پست‌اسکریپت ۳ (۱۹۹۷)

پست‌اسکریپت ۳ (۱۹۹۷) به‌روزرسانی بزرگی با رندر سریع‌تر، مدیریت بهتر رنگ، پشتیبانی از چاپ با دقت بسیار بالا، بهبود فونت‌ها و افکت‌های گرافیکی پیشرفته ارائه داد. اگرچه اکنون کمتر رایج است، اما همچنان در برخی چاپ‌های حرفه‌ای استفاده می‌شود.

  • به‌روزرسانی عمده‌ای با رندر کارآمدتر.
  • مدیریت رنگ‌های بهبود یافته با پروفایل‌های ICC.
  • پشتیبانی بهتر از چاپ با دقت بالا (بیش از ۲۴۰۰ نقطه در اینچ).
  • مدیریت فونت بهبود یافته، شامل پشتیبانی از فونت‌های چندگانه اصلی.
  • افکت‌های بیشتر شفافیت و سایه‌زنی (رندر بهتر گرافیک).
  • جایگزین شد توسط ورکفلوی مبتنی بر PDF در نشر مدرن، اما همچنان در چاپ‌های حرفه‌ای سطح بالا استفاده می‌شود.

پست‌اسکریپت در چاپ

قبل از پست‌اسکریپت:

  • چاپگرهای اولیه تنها کاراکترهای متنی را چاپ می‌کردند، معمولاً در فرمت ASCII، با جلوه‌های ثابت (مانند کلیدهای ماشین تایپ، نوارهای فلزی، یا صفحات نوری).
  • چاپگرهای نقطه‌ای شامل فونت‌های قابل انتخاب و بارگذاری جلوه‌های سفارشی بود، به همراه گرافیک مواد اولیه از طریق توالی فرار، اما نیاز به درایورهای خاص برای هر مدل چاپگر داشت.
  • گرافیک‌های وکتوری توسط پلاترها (مثلاً با استفاده از HPGL) مدیریت می‌شدند، اما این‌ها کند، گران و محدود به گرافیک بودند.

چاپ پست‌اسکریپت:

  • چاپگرهای لیزری نقاط قوت چاپگرهای نقطه و پلاترها را ترکیب کردند، امکان‌پذیر کردن متن و گرافیک با کیفیت بالا روی همان صفحه.
  • **پست‌اسکریپت کنترل چاپ را با یک زبان مستقل از دستگاه یکنواخت کرد که روی چاپگرها و نرم‌افزارهای مختلف کار می‌کند.
  • برخلاف زبان‌های سنتی کنترل چاپگر، پست‌اسکریپت یک زبان برنامه‌نویسی کامل است که رندر دقیق سند را ممکن می‌سازد.
  • رسترزاسیون بلافاصله: پست‌اسکریپت همه چیز (شامل متن) را با استفاده از خطوط مستقیم و منحنی‌های بزیه تعریف می‌کند که امکان‌پذیر کردن مقیاس‌پذیری، چرخش و تغییر شکل صاف را فراهم می‌کند.
  • مفسران پست‌اسکریپت، که به عنوان رستر تصویر پردازها (RIPs) شناخته می‌شوند، دستورالعمل‌ها را به نقاط مورد نیاز برای خروجی نهایی تبدیل می‌کنند.

مدیریت فونت پست‌اسکریپت

سیستم فونت‌های پست‌اسکریپت از اشکال گرافیکی اولیه برای ایجاد جلوه‌های مقیاس‌پذیر استفاده می‌کند، که به فونت‌ها امکان می‌دهد بدون از دست دادن کیفیت تغییر اندازه دهند. اشاره‌گیری فونت برای اطمینان از خوانایی واضح و قابل تشخیص باقی مانده حتی در اندازه‌های کوچک یا وضوح پایین استفاده می‌شود. فونت‌های پست‌اسکریپت در قالب‌های مختلف “نوع” ذخیره می‌شوند که هرکدام قابلیت‌های مختلفی ارائه می‌دهند.

تکامل فونت پست‌اسکریپت

سیستم فونت پست‌اسکریپت

  • از اشکال اولیه گرافیکی برای تعریف جلوه‌های مقیاس‌پذیر استفاده می‌کند.
  • اشاره‌گیری فونت اطمینان از رندر با کیفیت بالا، حتی در وضوح پایین را تأمین می‌کند.
  • فونت‌ها در قالب‌های تخصصی نوع با قابلیت‌های مختلف ذخیره می‌شوند.

انواع فونت پست‌اسکریپت

پست‌اسکریپت انواع مختلف فونت را ارائه داد. فونت‌های نوع ۱ با کیفیت بالای ادوبی ابتدا لایسنس می‌شدند، در حالی که فونت‌های نوع ۳، که استاندارد اشاره‌گیری نداشتند، توسط دیگران استفاده می‌شد. قالب‌های نوع ۲ و CFF حجم فایل را کاهش دادند و راه را برای OpenType هموار کردند. فونت‌های مبتنی بر CID از مجموعه‌های بزرگ کاراکترهای آسیایی و می‌توانستند ساختارهای نوع ۱ یا نوع ۲ را استفاده کنند.

  • فونت نوع ۱ (T1):

    • فرمت فونت فشرده و رمزگذاری شده اختصاصی توسط ادوبی.
    • استفاده شده برای فونت‌های با کیفیت بالا و اشاره شده.
    • ادوبی ابتدا فناوری نوع ۱ را با هزینه‌ای لایسنس می‌کرد.
  • فونت نوع ۳ (T3):

    • اجازه استفاده از تمام ویژگی‌های پست‌اسکریپت را می‌داد، ولی از نظر اشاره‌گیری استاندارد نشده بود.
    • توسط کسانی که نمی‌توانستند فناوری نوع ۱ را لایسنس کنند استفاده می‌شد.
  • فونت نوع ۲ (T2) و قالب فشرده فونت (CFF):

    • اندازه فایل فونت را کاهش داد تا کارآمد‌تر گردد.
    • پایه‌ای برای فونت‌های OpenType شد.
  • فونت‌های مبتنی بر CID:

    • برای مجموعه‌های کاراکترهای آسیایی (CJK) با فضاهای کدگذاری بزرگ طراحی شده بودند.
    • می‌توانستند از نوع ۱ یا نوع ۲ برای ساختارهای فونت مختلف استفاده کنند.

تکامل قالب فونت

اپل فونت‌های TrueType را برای رقابت با فونت‌های ادوبی ایجاد کرد. این امر باعث شد که ادوبی نحوه کار کردن فونت‌های خود را به اشتراک بگذارد. بعداً، ادوبی و مایکروسافت به‌طور مشترک فونت‌های OpenType را توسعه دادند که بهترین ویژگی‌های هر دو را ترکیب کردند و به قالب استاندارد فونت امروزی ما تبدیل شدند.

  • TrueType (1991):

    • توسط اپل به عنوان رقیب سیستم ادوبی توسعه داده شد.
    • مجبور کرد ادوبی مشخصات فونت نوع ۱ را برای استفاده عموم منتشر کند.
  • OpenType (اواخر دهه ۱۹۹۰):

    • به‌طور مشترک توسط ادوبی و مایکروسافت توسعه یافت.
    • کارکردهای نوع ۱ و TrueType را یکپارچه کرد.
    • تبدیل به استاندارد صنعتی برای فونت‌های مدرن شد.

پایان پشتیبانی از نوع ۱

  • ادوبی به‌طور رسمی پشتیبانی از فونت‌های نوع ۱ را در ژانویه ۲۰۲۳ به نفع OpenType متوقف کرد.

قالب سند قابل حمل (PDF) و پست‌اسکریپت

PDF در مقابل پست‌اسکریپت

PDF و پست‌اسکریپت دو قالب سند هستند که خروجی چاپی یکسانی را تولید می‌کنند زیرا از همان سیستم گرافیکی زیرین استفاده می‌کنند. تفاوت اصلی در ساختار آن‌ها نهفته است: پست‌اسکریپت یک زبان برنامه‌نویسی کامل است که امکان عملیات پویا را فراهم می‌کند، در حالی که PDF یک قالب استاتیک، ساده‌تر است که برای مشاهده و ناوبری کارآمدتر طراحی شده است. باوجود این تفاوت‌ها، امکان تبدیل فایل‌ها بین این دو قالب وجود دارد.

درک پست‌اسکریپت و PDF
  • مدل تصویر برداری مشابه – هر دو PDF و پست‌اسکریپت از همان سیستم گرافیکی استفاده می‌کنند، که چاپ خروجی یکسان را تضمین می‌کند.
  • چه تفاوتی وجود دارد؟
    • پست‌اسکریپت یک زبان برنامه‌نویسی کامل تورینگ است که توانایی عملیات پویا را دارد.
    • PDF یک ساختار داده استاتیک است که برای دسترسی و ناوبری کارآمد بهینه‌سازی شده است، و آن را برای مشاهده تعاملی بهتر می‌کند.
  • قابلیت تبدیل متقابل – PDFها می‌توانند به پست‌اسکریپت تبدیل شوند، و برعکس.

زبان پست‌اسکریپت

پست‌اسکریپت یک زبان برنامه‌نویسی پایه‌گذاری شده بر اساس استک با تایپ دینامیک است، مشابه فورث ولی با ساختارهای داده‌ای شبیه لیسپ. این زبان از نشانه‌گذاری معکوس لهستانی استفاده می‌کند، که نیاز به مدیریت دقیق حافظه دارد. پست‌اسکریپت از آرایه‌ها و دیکشنری‌ها استفاده می‌کند، مدیریت تایپ را در زمان اجرا انجام می‌دهد و شامل جمع‌آوری زباله است. نظرات با “%"، و برنامه‌ها معمولاً با “%!PS” شروع می‌شوند.

  • برنامه‌نویسی کامل تورینگ و استک-پایه – مشابه فورث، ولی با تایپ دینامیک و ساختارهای داده‌ای شبیه به لیسپ.
  • نشانه‌گذاری معکوس لهستانی (RPN) – عملگرها روی یک استک عمل می‌کنند، که نیاز به مدیریت دقیق دارد.
  • مدیریت حافظه
    • از حافظه محدوده‌ای استفاده می‌کند.
    • در پست‌اسکریپت سطح ۲ به معرفی جمع‌آوری زباله نیل کرد.
  • ساختارهای داده
    • از آرایه‌ها و دیکشنری‌ها استفاده می‌کند.
    • اعلان‌های نوع رسمی ندارد—تایپ در زمان اجرا مدیریت می‌شود.
  • کامنت‌ها و ساختار برنامه
    • % کامنت‌ها را معرفی می‌کند.
    • برنامه‌ها معمولاً با ”%!PS" به منظور شناسایی به عنوان پست‌اسکریپت شروع می‌شوند.

نحوه استفاده از پست‌اسکریپت

  • عمدتاً توسط نرم‌افزار تولید می‌شود، نه به صورت دستی نوشته شود.
  • می‌تواند به عنوان یک زبان برنامه‌نویسی کامل برای اتوماسیون استفاده شود.
  • توسط چاپگرها (RIPs) یا نمایشگرهای روی صفحه تفسیر می‌شود.

مثال از یک فایل ساده پست‌اسکریپت

در اینجا یک مثال ساده از فایل پست‌اسکریپت (.ps) وجود دارد که عبارت “Hello, World!” را روی یک صفحه چاپ می‌کند:

%!PS
/Times-Roman findfont 24 scalefont setfont
100 700 moveto
(Hello, World!) show
showpage

توضیح:

  1. %!PS → فایل را به عنوان یک سند پست‌اسکریپت شناسایی می‌کند.
  2. /Times-Roman findfont 24 scalefont setfont → فونت Times-Roman را با اندازه ۲۴ انتخاب می‌کند.
  3. 100 700 moveto → مکان‌نما را به مختصات (100, 700) در صفحه حرکت می‌دهد.
  4. (Hello, World!) show → “Hello, World!” را در موقعیت مشخص چاپ می‌کند.
  5. showpage → به چاپگر دستور می‌دهد که صفحه را چاپ کند.

می‌توانید این را به عنوان hello.ps ذخیره کنید و با یک نمایشگر پست‌اسکریپت (مثل GSview، Ghostscript) باز کنید یا آن را به یک چاپگر پست‌اسکریپت ارسال کنید.

hello.ps پس از رندرگیری

عنوان - hello.ps پس از رندرگیری

فهرستی از نرم‌افزارها برای رندر پست‌اسکریپت

نمایشگرها و تفسیرگرهای پست‌اسکریپت

  1. Ghostscript (منبع باز) – مفسر محبوب برای پست‌اسکریپت و PDF.
  2. GSview – رابط کاربری پیش‌فرض برای Ghostscript.
  3. MuPDF – نمایشگر سبک که از پست‌اسکریپت و PDFها پشتیبانی می‌کند.
  4. Xpdf – نمایشگر PDF منبع باز با برخی پشتیبانی از پست‌اسکریپت.
  5. Evince – نمایشگر مستندات GNOME که می‌تواند فایل‌های پست‌اسکریپت را مدیریت کند.
  6. Okular – نمایشگر مستندات KDE با پشتیبانی از پست‌اسکریپت.
  7. Apple Preview – نمایشگر داخلی macOS که از پست‌اسکریپت و PDF پشتیبانی می‌کند.

چاپگرها و رسترایزرهای پست‌اسکریپت

  1. Adobe Acrobat Distiller – تبدیل پست‌اسکریپت به PDF با کیفیت بالا.
  2. CUPS (سیستم چاپ مشترک یونیکس) – مدیریت چاپ پست‌اسکریپت در یونیکس/لینوکس.
  3. PPR (نسخه تولید چاپگر) – BUفر نگهداری و رندر پست‌اسکریپت.

نرم‌افزارهای گرافیک برداری و DTP

  1. Adobe Illustrator – می‌تواند فایل‌های پست‌اسکریپت را باز کند و ویرایش کند.
  2. CorelDRAW – پشتیبانی از پست‌اسکریپت برای گرافیک برداری.
  3. Scribus – نرم‌افزار نشر رومیزی منبع باز با پشتیبانی از پست‌اسکریپت.
  4. Inkscape – می‌تواند پست‌اسکریپت (از طریق Ghostscript) را وارد/صادر کند.

ابزارهای خط فرمان و تبدیل

  1. ps2pdf (بخشی از Ghostscript) – تبدیل پست‌اسکریپت به PDF.
  2. pstopdf (ابزار خط فرمان macOS) – تبدیل پست‌اسکریپت به PDF.
  3. ImageMagick – می‌تواند فایل‌های پست‌اسکریپت را به تصاویر تبدیل کند.