مرجع
آخر الزيارات

بوست سكريبت

3٬364 كلمة•0 مشاهدة•🗒️ منذ 17 يوماً
باختصار: لغة الـ بوست سكريبت هي لغة برمجة ديناميكية متسلسلة ابتكرها جون وورنوك، تشارلز غيشكي، دوغ Brotz، إد تافت وبيل باكستون في 1982. تتناول المقالة 17 قسماً، منها «تاريخ اللغة»، «0 113.385827 lineto stroke» و«بوست سكريبت 3».
المحتويات
  1. تاريخ اللغة
  2. 0 113.385827 lineto stroke
  3. بوست سكريبت 3
  4. % the font as the current one
  5. وحدات الطول
  6. %!PS
  7. قبل بوست سكريبت
  8. /Courier % name the desired font
  9. التعامل مع الخطوط
  10. طباعة بوست سكريبت
  11. showpage % print all on the page
  12. الاستخدام كنظام تشغيل
  13. بوست سكريبت المستوى 1
  14. 0 40 mm lineto stroke
  15. بوست سكريبت المستوى 2
  16. اللغة
  17. تطبيقات أخرى
بوست سكريبت

في البداية، لغة الـ بوست سكريبت هي لغة برمجة ديناميكية متسلسلة ابتكرها جون وورنوك، تشارلز غيشكي، دوغ Brotz، إد تافت وبيل باكستون في 1982. وتشتهر بوست سكريبت باستخدامها كلغة وصف صفحات page description في مجالات النشر المكتبي والإلكتروني. ونتناول فيما يلي مزيدًا من التفاصيل.

تاريخ اللغة

علاوةً على ذلك، ومع ذلك، كانت تكلفة التطبيق مرتفعة؛ حيث كان الكمبيوتر يصدر مخرجات من الأسطر البرمجية الخام من PostScript والتي تقوم الطابعة بترجمتها إلى صورة نقطية عند مستوى الدقة الطبيعية للطابعة. وقد تطلب هذا معالجات ميكرو microprocessors مرتفعة الأداء وذاكرة كبيرة. وكانت طابعة الـLaserWriter تستعمل معالج Motorola 68000 بقدرة 12 ميجاهرتز، وهو ما يجعلها أسرع من أي أجهزة ماكنتوش متصلة بها. وعندما تتكلف محركات طابعات الليزر نفسها أكثر من ألف دولار، فإن التكلفة المُضافة لـ PostScript بالتاكيد تصبح أعلى، ولكن الآليات التشغيلية للطابعات هبطت في أسعارها، وهو ما جعل تكلفة تطبيق PostScript تزداد بشكل هائل.

في هذا الإطار، وفي سنة 1978، طلبت شركة (إيفانز وساذرلاند) من (وورنيك) الانتقال من (سان فرانسيسكو باي أريا) إلى مقرهم الرئيسي في ولاية يوتا، ولكنه لم يكن مهتمًا بالانتقال. وقد التحق لاحقًا بشركة (Xerox PARC) للعمل مع (مارتن نيويل)، ليعيدا كتابة نظام التصميم ويقوما بإنشاء JaM (وهي تحمل الحروف الأولى من John وMartin) (والتي استعملت في تصميم دارات التكامل الفائق VLSI وبحث نوع طباعة الحروف الطباعية والرسوميات. وقد نما هذا الجهد لاحقًا واتسع ليتحول إلى لغة الـ InterPress.

في هذا الإطار، وقد غادر وورنيك الشركة مع (شوك جيشكي) وأسسا شركة Adobe Systems في ديسمبر 1982. وأنشأ لغة أكثر بساطة، تشبه الـ InterPress، وأسموها PostScript، والتي طُرحت في السوق عام 1984. وخلال هذه الفترة زارهم (ستيف جوبز)، والذي شجعهم على موائمة PostScript لاستخدامها كلغة في تشغيل طابعات الليزر.

من جانب آخر، وفي مارس 1985، كانت طابعة Apple Laser Writer هي أول طابعة تكون مزودة بـ PostScript، وهو ما أشعل ثورة تطبيقات النشر المكتبي desktop publishing في منتصف الثمانينات من القرن المنصرم. وكانت المزايا الفنية للغة الجديدة إلى جانب انتشارها الواسع قد جعلا من PostScript اللغة المفضلة للمخرجات الرسومية الخاصة بتطبيقات الطباعة. ولفترة من الوقت، كان أحد تطبيقات الترجمة (والذي يُشار إليه باسم RIP أو معالج الصور النقطية) الخاصة بلغة الـ PostScript أحد المكونات شائعة الاستخدام في طابعات الليزر حتى فترة التسعينات.

كذلك، وبعد أن كان الـ PostScript هو السائد في التوزيع الإلكتروني للمستندات النهائية المعدة للنشر، إذا بأحد التطبيقات الآخرة المنحدرة منه يحل محله في السوق وهو تنسيق المستند المحمول أو PDF. وبحلول عام 2001، تراجع عدد موديلات الطابعات المزودة بدعم لـ PostScript ، وكان السبب في ذلك المنافسة القوية والمتنامية من طابعات نفث الحبر غير المزودة بهذا التطبيق والأقل تكلفة بكثير، وكذلك نشوء الطرق البرامجية الجديدة لإظهار صور PostScript على الكمبيوتر، وبما يجعلها ملائمة للاستخدام على أي نوع من الطابعات (وكانت PDF توفر هذه الخاصية). ومع ذلك، كان استخدام طابعات الليزر المزودة بـ PostScript يقلل بدرجة كبيرة من حمل العمل workload على وحدة المعالجة المركزية. وهو ما ينقل عبء إنشاء صور الـ PostScript من الكمبيوتر إلى الطابعة. ولا يزال PostScript هو الخيار المفضل على أغلب موديلات المستعملين الأعلى في القدرة الشرائية.

إضافةً إلى ذلك، وبالتزامن مع وورنيك، طور الباحثون في شركة (Xerox PARC) أول طابعة ليزر، وقد رأوا حاجة لطريقة معيارية لتعريف الصور الموجودة في الصفحات. وفي الأعوام 1975-1976، قام فريق يقوده (بوب سبرول) بتطوير الصيغة Press ، والتي استعملت في النهاية في نظام (Xerox star) لتشغيل طابعات الليزر. ولكن الصيغة Press، وهي صيغة بيانات عنها لغة، كانت تفتقد للمرونة، لذلك قامت PARC بتطوير لغة الـ InterPress كبديل لـ Press.

ومن ناحية أخرى، ظهرت لأول مرة مفاهيم لغة الـ PostScript في سنة 1976، عندما كان (جون ورنيك) يعمل بشركة (إيفانز آند ساذرلاند) وهي إحدى الشركات المتخصصة في رسوميات الجرافيك. حيث كان وورنيك في ذلك الوقت يطوّر تطبيقًا لترجمة قاعدة بيانات رسومية كبيرة ثلاثية الأبعاد لميناء نيويورك. وقد فكر وورنيك في هذه اللغة الخاصة بأنظمة التصميم من أجل معالجة الرسوميات.

0 113.385827 lineto stroke

0 0 moveto

وفي السياق ذاته، كما يمكننا استخدام الصيغة التالية، والتي تبين تعريفا لإجراء مبسط واستخدام المعاملين الرياضيين mul وdiv:

/mm { 360 mul 127 div } def

بوست سكريبت 3

الاستخدام في الطباعة

وفي هذا السياق، خرج PostScript 3 (حيث شطبت شركة أدوبي كلمة «مستوى» بُغية التبسيط) إلى النور في نهاية 1997، إلى جانب نسخ كثيرة جديدة تقوم على القواميس dictionary-based من المشغلات الأقدم، وقد طرحت إمكانيات أفضل في التعامل مع الألوان ومرشّحات (فلاتر) جديدة (والتي مكنت من إجراء عمليات الضغط وفك الضغط داخل البرنامج، وتجزئة البرنامج program chunking، والتعامل المتقدّم مع الأخطاء).

من جهة ثانية، وقد كان لـ PostScript 3 تأثيره المهم من حيث أنه حلّ محل أنظمة عمليات ما قبل الطباعة الإلكترونية الملوّنة، والتي كانت شائعة الاستخدام في إنتاج المجلات، من خلال طرح عمليات التظليل الناعمة لما يصل إلى 4096 ظل رمادي (وذلك بدلاً من 256 في PostScript 2)، فضلًا عن DeviceN، أو الفضاء اللوني color space الذي أتاح إضافة ألوان حبر إضافية (يطلق عليها اسم ألوان النقط spot colors) في صفحات الألوان المُركّبة.

% the font as the current one

  • 72 500 moveto % position the current point at
  • % coordinates 72, 500 (the origin is at the
  • % lower-left corner of the page)
  • (Hello world!) show % stroke the text in parentheses

وحدات الطول

فمثلا، لكي نرسم خطاً رأسياً طوله 4 سم، يكفي أن نكتب:

0 0 moveto

وعلى صعيد آخر، تستعمل بوست سكريبت النقاط لتكون وحدة الطول. ولكن وعلى العكس من بعض النسخ الأخرى، فإنها تستعمل تحديداً 72 نقطة للبوصة، وبالتالي:

%!PS

(Hello world!)

قبل بوست سكريبت

إضافةً إلى ذلك، وكانت طباعة الرسوميات المتجهية vector graphics قد تُركت إلى أجهزة خاصة بهذا الغرض تدعى plotters (طابعات الرسوم الهندسية والخرائط). وكانت كافة هذه الطابعات تشترك في لغة أوامر مشتركة وهي لغة تخزين الصور الرسومية (HPGL)، ولكنها كانت محدودة الاستخدام في غير طباعة الرسوميات. فضلًا عن ذلك، فقد كانت مكلفة الثمن وبطيئة، ومن ثم نادرة.

وعلى صعيد آخر، قبل طرح PostScript، كانت الطابعات تُصمّم لكي تطبع مخرجات من المحارف characters، وكانت مدخلاتها هي النصوص المكتوبة بلغة الـ ASCII. وقد استعمل عدد من التقنيات لهذه المهمة، ولكن أغلبها اشتركت في خاصية أن صور المحارف glyphs كان من الصعب تغييرها ماديّا، حيث كان يتم صكّها على مفاتيح آلة كاتبة أو قطع معدنية أو صفائح بصرية.

من جانب آخر، وقد تغير هذا الوضع بدرجة معينة مع زيادة شعبية طابعات مصفوفة النقط dot matrix. وكانت تُرسم المحارف على هذه الأنظمة كسلسلة من النقاط، على نحو ما يحدده جدول خطوط بداخل الطابعة. ومع زيادتها في التعقيد، بدأت طابعات مصفوفات النقط تضم الكثير من الخطوط المدمجة built-in بحيث يستطيع المستعمل الاختيار من بينها، وكانت بعض الموديلات تسمح للمستعمل بتحميل صور محارفه الخاصة إلى الطابعة.

كذلك، كذلك فقد أتاحت طابعات مصفوفة النقط إمكانية طباعة الرسوميات النقطية raster graphics. وكان يتولى ترجمة هذه الرسوميات جهاز الكمبيوتر ويُرسلها على هيئة سلسلة من النقط إلى الطابعة باستخدام سلسلة من متتاليات الهروب escape sequences. وهذه اللغات الخاصة بالتحكم في الطابعة كانت تختلف من طابعة إلى أخرى، وكانت تستلزم من مؤلفي البرامج إنشاء عدد هائل من التعريفات drivers.

/Courier % name the desired font

20 selectfont % choose the size in points and establish

التعامل مع الخطوط

كذلك، كما صمم كذلك تنسيق خطوط سِيد CID-keyed fonts (وهي خطوط بتنسيق PostScript لا تُسمى فيها المحارف ولكن تُفهرس ضمن فهرس index حيث تُعرف بأرقام سيد) سعياً لحل المشكلات الموجودة في الخطوط OCF/Type 0، ولمعالجة التكوين المعقد للغات الآسيوية (أي اللغات الصينية واليابانية والكورية CJK) والمشاكل الخاصة بمجموعات المحارف شديدة الضخامة. ويُمكن استخدام خطوط سِيد مع تنسيق الخطوط Type 1 وذلك لخطوط سيد المعيارية، أو الخطوط Type 2 للخطوط سيد من النوع OpenType.

من جهة ثانية، ومن بين هذه المشكلات أن الخطوط لا تتخذ أشكالا خطية تمامًا عند الأحجام الصغيرة؛ حيث تصبح صور المحارف صغيرة أو ضخمة للغاية ويبدأ شكلها في التشوّه. وقد تلافى الـ PostScript هذه المشكلة من إخلال إدراج التلميحات التي يمكن حفظها مع الحدود المحيطية outlines للخطوط. وهي في الأصل عبارة عن معلومات إضافية توجد ضمن أحزمة أفقية أو رأسية تسهم في تحديد الخصائص الحرفية التي ينبغي على آلية الرسترة (التنقيط) المحافظة عليها. ونتيجة استخدام هذه التلميحات كانت تحسن شكل الخطوط حتى عند المستويات المنخفضة من دقة الشاشة؛ وكان يعتقد في السابق أن الخطوط النقطية bitmap المضبوطة يدويًا هي الحل لهذه المشكلة.

إضافةً إلى ذلك، وقد صُمم النوع Type 2 لكي يُستعمل مع تنسيق الخط المُدمج Compact Font Format (CFF) وتم تطبيقه للتمثيل المدمج لتعليمات توصيف صور المحارف لتقليل الحجم الإجمالي لملفات الخطوط. وقد أصبحت ذلك التنسيق لاحقًا هو الأساس للخطوط المفتوحة Type 1 OpenType.

في هذا الإطار، يقع على نفس مستوى تعقيد لغة الـ PostScript طريقة تعاملها مع الخطوط. فنظام الخطوط الغني استعمل البدائيات الرسومية للـ PostScript لرسم صور المحارف كرسوم خطيّة (خالية من الظلال)، وليتم إظهارها لاحقًا عند أي مستوى دقّة resolution. ورغم أن المفهوم يبدو واضح المعالم، إلا أنه ينطوي على بعض المشكلات التيبوغرافية (الخاصة بالحروف والخطوط).

من جهة ثانية، في ذلك العصر، كانت التكنولوجيا المستعملة في إدراج هذه التلميحات في الخطوط تحظى بمستوى عال من الحماية، وكانت الخطوط المزودة بالتلميحات تُضغط وتُشفّر فيما أطلقت عليه Adobe اسم Type 1 Font (ويعرف كذلك باسم PostScript Type 1 أو PS1 أو T1 أو Adobe Type 1). وكان Type 1 عبارة عن مجرد تبسيط لنظام PostScript لتخزين معلومات الحدود فقط، وليس لغة مكتملة الخصائص (وصيغة الـ PDF مشابهة في هذا الخصوص). ولاحقًا، قامت Adobe ببيع التراخيص الخاصة بتكنولوجيا Type 1 إلى الراغبين في إضافة التلميحات لخطوطهم. أما من لم يرخّصوا التكنولوجيا فقد اضطروا لاستعمال Type 3 Font (والذي يعرف كذلك بـ PostScript Type 3 Font أو PS3 أو T3). وكانت الخطوط من النوع Type 3 تتيح الاستفادة من كافة الأدوات المتطورة المدمجة في لغة الـ PostScript، ولكنها بدون الأسلوب الموحد الخاص بالتلميحات. وكانت هناك اختلافات أخرى أضافت هي الأخرى الفوضى الدائرة.

كذلك، وفي نهاية التسعينات، انضمت شركة Adobe إلى مايكروسوفت في تطوير الخطوط OpenType، وهي في الأصل مجموعة وظيفية شاملة للنوعين Type 1 وTrueType. وعندما تطبع هذه الخطوط إلى أحد الأجهزة المزودة بالـ PostScript، يتم حذف الأجزاء غير الضرورية من الخط OpenType، وما يتم إرساله إلى الجهاز عن طريق ملف التعريف هو نفسه ما يتم إرساله في العادة مع الخطوط TrueType أو Type 1، وذلك اعتمادًا على نوع الحدود المحيطية (الأوتلاين) الموجودة في الخط OpenType.

في هذا الإطار، وفي مطلع التسعينات، كانت هناك الكثير من الأنظمة الأخرى لتخزين الخطوط القائمة على الحدود المحيطية outline، مثل تلك التي طورتها Bitstream وMETAFONT، ولكن أيًا منها لم يشتمل على حل طباعي عمومي ومن ثم لم يُقدّر لها الانتشار الواسع.

من جانب آخر، وكانت الأسعار التي وضعتها Adobe مرتفعة بدرجة منعت الكثير من المستعملين من شراءها، وهي المشكلة التي دفعت Apple لكي تصمم نظامها الخاص TrueType في عام 1991. وقد أعقب الإعلان عن خط TrueType إصدار Adobe للمواصفة الخاصة بتنسيق الخط Type 1. وقد أضافت أدوات التجزئة مثل Fontographer من Altsys (والذي استحوذت عليه شركة Macromedia في يناير 1995، وتملكته شركة FontLab منذ مايو 2005) القدرة على إنشاء الخطوط من النوع Type 1. ومنذ ذلك الحين، صدرت الكثير من الخطوط Type 1 المجانية؛ فمثلاً، تأتي الخطوط المستعملة مع نظام التنضيد TeX متوافرة في هذا التنسيق.

طباعة بوست سكريبت

من جانب آخر، تجمع طابعات الليزر بين أفضل خصائص الطابعات العادية وطابعات الرسوم الهندسية. فعلى غرار طابعات الرسوم الهندسية، توفر طابعات الليزر درجة عالية من الجودة في الرسوم الخطية (الخالية من الظلال) line art. وعلى غرار طابعات مصفوفات النقط، نجد طابعات الليزر قادرة على توليد صفحات من النصوص والرسوميات النقطية. بيد أنها، وعلى خلاف طابعات النقط وطابعات الرسوم الهندسية، تجعل من الممكن وضع النصوص والرسوميات عالية الجودة على نفس الصفحة. ويجعل PostScript من الممكن الاستغلال الكامل لهذه المميزات، وذلك من خلال توفير لغة تحكم وحيدة يمكن استخدامها على أي ماركة من الطابعات.

علاوةً على ذلك، وقد تجاوزت لغة PostScriptكونها مجرد لغة تحكم عادية في الطابعات وأصبحت لغة برمجة مكتملة في حد ذاتها. وتستطيع الكثير من التطبيقات تحويل أي مستند إلى برنامج PostScript يؤدي تنفيذه إلى ظهور المستند الأصلي. ويمكن إرسال هذا البرنامج إلى أحد تطبيقات الترجمة interpreter في أي طابعة، لينجم عنه مستند مطبوع، أو إلى أحد التطبيقات التي تقوم بعرض المستند على الشاشة. ونظرًا لأن برنامج المستند يكون هو نفسه بغض النظر عن الجهاز الذي ينزل عليه، فإنه يطلق عليه برنامج مستقل عن الجهاز device-independent.

علاوةً على ذلك، وتتميز لغة الـ PostScript بإمكانيات تطبيق الرسترة (التنقيط) الفورية؛ فكل شيء، حتى النصوص، يتم تعيينه على هيئة خطوط مستقيمة وانحناءات بيزيير Bézier مكعّبة (والتي كانت في السابق توجد في تطبيقات الـ CAD فقط)، وهو ما يتيح إجراء التحجيم العشوائي والتدوير وغيرها من عمليات التحويل. وعندما تتم ترجمة برنامج PostScript، يقوم المترجم بتحويل هذه التعليمات إلى النقاط المطلوبة لتشكيل المخرجات. ولهذا السبب، يُطلق أحيانًا على مترجمات الـ PostScript اسم معالجات الصور النقطية أو الـ RIPs.

showpage % print all on the page

أو إذا كان جهاز المخرجات يتضمن لوحة تحكم:

الاستخدام كنظام تشغيل

وفي السياق ذاته، بيد أن لغة الـ PostScript قد كتبت في الأصل على أساس أن تخدم عملية الطباعة، وكانت تضم كثرة هائلة من الخصائص التي تجعلها غير مناسبة للاستخدام المباشر على نظم العرض التفاعلية. ويهمنا هنا بصفة خاصة أن PostScript كان تقوم على فكرة تجميع وإضافة أوامر PostScript حتى يظهر أمر إظهار الصفحة showpage، وعندها كانت كافة الأوامر المقروءة حتى هذه النقطة يتم ترجمتها وإنتاج مخرجاتها. وبالطبع فإن من الواضح أن هذا الأمر لا يناسب النظم التفاعلية. كما أن PostScript لم يتضمن أي نوع من الخواص التفاعلية المدمجة؛ فمثلاً، لم يكن دعم كشف الارتطام hit detection من أجل تفاعلية الفأرة (الماوس) نافعًا عندما كان الـ PostScript يُستعمل على الطابعات.

كذلك، وقد حقق PostScript نجاحاً تجاريًا بعد طرح واجهات المستعمل الرسومية (GUI)، والتي سمحت للمصممين بتنسيق الصفحات مباشرة لطباعتها على طابعات الليزر.ورغم ذلك، كانت أنظمة الرسوميات الخاصة بواجهات المستعمل الرسومية أقل تطوراً من PostScript؛ فمثلاً كان التطبيق QuickDraw من Apple، يدعم فقط الخطوط والأقواس الأساسية، وليس الدوال B-splines المعقدة وخيارات ملء المناطق المعقدة الخاصة بـ PostScript. ولكي تستفيد من المزايا الكاملة للطباعة بالـ PostScript، كانت تضطر التطبيقات في أجهزة الكمبيوتر أن تعيد تطبيق هذه الخصائص باستخدام نظام الرسوميات الخاصة بمنصة الكمبيوتر المستضيف. وقد أدى ذلك لنشوء الكثير من المشاكل نظرًا لأن التنسيق الظاهر على الشاشة لم يكن يطابق بشكل تام التنسيق المطبوع، وذلك نتيجة للاختلافات في تطبيق هذه الخصائص.

من جانب آخر، وقد أخذت شركة Sun Microsystems منحى آخر، حيث أنشأت برنامج NeWS. فبدلاً من مفهوم الـ DPS القائم على السماح للـ PostScript بالتفاعل مع برامج الـ C، لجأت NeWS إلى توسيع الـ PostScript وتحويله إلى لغة مناسبة لتشغيل واجهة المستعمل الرسومية بالكامل الخاصة بأي كمبيوتر. وقد أَضافت شركة (صن) عددًا من الأوامر الجديدة للمؤقتات والتحكم في الفأرة والانقطاعات interrupts وغيرها من الأنظمة المطلوبة للتفاعلية، وأضافت هياكل البيانات والعناصر اللغوية لكي تجعلها موجهة بالكائنات بشكل تام داخليًا. وقد صممت واجهة مستعمل رسومية كاملة، هم ثلاثة في الواقع، في NeWS، وقد طبقت لفترة على حاسوباتهم. بيد أن الجهود الدائبة لتوحيد نظام الـ X11 قد أدت لطرحه وانتشار استخدامه على أنظمة (صن)، ولم يتحقق لنظام NeWs أي انتشار واسع.

إضافةً إلى ذلك، وعندما غادر (ستيف جوبز) شركة Apple ليعمل في شركة NeXT، طرح Adobe على أساس فكرة استخدام الـ PostScript كنظام عرض لحواسيبه في الشركة. وكانت النتيجة هي برنامج Display PostScript أو DPS. وقد أضاف DPS عددًا من الوظائف الأساسية لتحسين الأداء من خلال تغيير الكثير من كّشافات السلاسل الحرفية string lookups إلى أعداد صحيحة سعة 23 بت، وإضافة الدعم للمخرجات المباشرة مع كل أمر، وإضافة وظائف للسماح بواجهة المستعمل الرسومية بتفتيش مخطط البيانات. علاوةً على ذلك، فقد تمت إضافة مجموعة من «وسائل الربط» bindings لإتاحة إمكانية الاستدعاء المباشر لكود الـ PostScript من لغة البرمجة C. وقد استعملت شركة نكست هذه الوسائل في نظامها NeXTStep لتوفير نظام رسومي موجه بالكائنات object-oriented. ورغم أن الـ DPS قد صُمم بالتعاون مع NeXT، إلا أن Adobe باعته تجاريًا وكان أحد المكونات الشائعة في أغلب الأجهزة العاملة بنظام الـ Unix في التسعينات.

من جهة ثانية، ومع تنامي إمكانيات أجهزة الكمبيوتر، أصبح في الإمكان وضع نظام PostScript في الكمبيوتر بدلاً من الطابعة. وقد أدى ذلك إلى التطور الطبيعي للـ PostScript من نظام طباعي إلى نظام يمكن استخدامه باعتباره لغة الرسوميات الخاصة بالجهاز المستضيف. وقد كانت هناك الكثير من المزايا في هذا الأمر: فهو لم يلغ الاختلاف بين ما يُطبع على الشاشة وما يُطبع على الطابعة فحسب، بل وأتاح كذلك نظام رسوميات قوي للكمبيوتر، وأتاح للطابعات أن «تصمت» في وقت كانت فيه تتراجع تكلفة محركات الليزر. أما من الناحية الإنتاجية، كان استخدام PostScript كنظام للعرض display معناه أن بوسع جهاز الكمبيوتر المستضيف له أن يظهر دقة أقل على الشاشة ودقة أعلى في الطابعة، أو أن يقتصر على إرسال كود الـ PostScript إلى أحد الطابعات الذكية للطباعة الخارجية.

بوست سكريبت المستوى 1

من جانب آخر، خرجت النسخة الأولى من لغة الـ PostScript إلى السوق في سنة 1984.

0 40 mm lineto stroke

  • انظر كذلك
  • أدوبي سيستمز
  • نسق المستندات المنقولة
  • رسوميات متجهية
  • عائلة الخط
  • خط حاسوب
  • تخ
  • لاتخ
  • ملاحظات

في هذا الإطار، وبالتالي فليس من المجدي أن نستعمل 9 أرقام عشرية لتحديد العدد الحقيقي، والقيام بحسابات قد ينجم عنها أخطاء غير مقبولة.

بوست سكريبت المستوى 2

وعلى صعيد آخر، طرُحت لغة الـ PostScript من المستوى 2 في عام 1991، وتضمنت الكثير من التحسينات منها تحسين السرعة والمصداقية، ودعم عمليات الفصل في معالج الصور النقطية RIP، وفك ضغط الصور (حيث أمكن مثلاً التعامل مع صور الـ JPEG باستخدام برنامج الـ PostScript)، والدعم للخطوط المرُكّبة، وآلية تشكيل لتخزين المحتوى القابل لإعادة الاستخدام.

اللغة

تطبيق على برنامج "Hello World"

من جهة ثانية، يبدو الكود الخاص ببرنامج "Hello World"، وهو البرنامج الذي يشيع استخدامه كمثال على أي برنامج مكتمل في أي لغة، على النحو التالي في PostScript2:

وعلى صعيد آخر، لغة الـ PostScript هي لغة برمجة متكاملة مع معايير تورنغ Turing-complete، وتنتمي إلى المجموعة المتسلسلة concatenative.ومن الناحية النموذجية، لا يكتب البشر برامج الـ PostScript، بل برامج أخرى هي التي تتولى ذلك. ورغم ذلك، من الممكن كتابة برامج حاسوبية في PostScript مثل أي لغة برمجة أخرى.

%!PS

من جانب آخر، ويُستعمل الرمز "%" في استهلال التعليقات في برامج الـ PostScript. وكتقليد متبع، يجب أن يبدأ كل برنامج من برامج PostScript بالرموز "!%" بحيث تترجمها كافة الأجهزة على أنها تنتمي للـ PostScript.

إضافةً إلى ذلك، ولغة PostScript هي لغة قابلة للترجمة وقائمة على الحزم stack-based، وتشبه لغة Forth، ولكنها ذات نظام نوعي ديناميكي قوي، وهياكل بيانات مستلهمة من الموجودة في لغة الـ Lisp وذاكرة نطاقية scoped memory، وأيضاً آلية لجمع القمامة garbage collection (وذلك بداية من المستوى 2). ويستعمل النظام التركيبي (السينتاكس) للغة نظامThis language is bullshit التنويت البولندي العكسي reverse Polish notation، والذي يجعل ترتيب العمليات خاليًا من الغموض، ولكن قراءة أي برنامج تستلزم بعض الممارسة، نظرًا لأن على من يقرأ أن يحتفظ بتنسيق الحزمة في ذهنه. وأغلب المؤثرات operators (وهو ما تسميه اللغات الأخرى بالدوال functions) تتخذ وسائطها من الحزمة، وتضع نتائجها على الحزمة. أما الحرفيات literals (مثل الأرقام) فتقوم بعمل نسخة من نفسها في الحزمة. ويمكن بناء هياكل البيانات المتطورة على المصفوفات array والقواميس dictionary، ولكن لا يمكن إعلانها لنظام النوع، والذي يراها كمصفوفات وقواميس فقط، ولذلك فإن أي نظام تنويع typing يطبق على هذه «الأنواع» المعرّفة من قبل المستعمل يتم تركه للكود الذي يقوم بتطبيقه.

تطبيقات أخرى

إضافةً إلى ذلك، واليوم، شاع استخدام تطبيقات الترجمة المتوافقة مع PostScript في الطابعات والملحقات والأجهزة الطرفية متعددة الوظائف (MFPs). فمثلاً، صار المترجم IPS PS3 من شركة Zoran Corporation، والذي عرف في السابق باسم PhoenixPage، هو تطبيق الترجمة السائد في الكثير من الطابعات والملحقات الطرفية، ومنه ما طورته شركة HP وتم بيعه ضمن خطوط إنتاج طابعات الليزر العادية والملونة. ومن حلول الـ PostScript التي طورتها شركات أخرى والتي استعملتها شركات صناعة الطابعات والملحقات متعددة الوظائف حلول مثل Jaws وHarlequin RIP، والتي تقدمها شركة Global Graphics. وهناك قائمة بالعديد من تطبيقات الترجمة المتوافقة في Undocumented Printing Wiki. .

من جهة ثانية، في الثمانينات من القرن المنصرم، استمدت Adobe أغلب إيراداتها من رسوم الترخيص الخاصة بتطبيق PostScript للطابعات، والمعروف باسم معالج الصور النقطية أو RIP. ومع توافر المنصّات الجديدة القائمة على RISC في منتصف الثمانينات، وجد البعض أن دعم Adobe للأجهزة الجديدة غائبًا.

إضافةً إلى ذلك، ومع ذلك، لا نزال نجد بعض طابعات الليزر الأساسية غير المكلفة لا تدعم PostScript، حيث تأتي بتعريفات تقوم ببساطة برسترة (تنقيط) تنسيقات الرسوميات المحلية الخاصة بالمنصة بدلاً من تحويلها أولاً إلى PostScript. وعندما يكون دعم الـ PostScript مطلوباً لهذه الطابعات، يمكن استخدام تطبيق ترجمة مجاني متوافق مع PostScript يُدعى Ghostscript. ويقوم الـ Ghostscript بطباعة مستندات الـ PostScript على الطابعات غير المزودة بالـ PostScript وذلك باستخدام وحدة المعالجة المركزية (CPU) للكمبيوتر المستضيف للقيام بعملية الرسترة (التنقيط)، وذلك من خلال إرسال النتيجة كصورة نقطية bitmap واحدة كبيرة إلى الطابعة. كما يمكن استخدام Ghostscript كذلك في استعراض مستندات الـ PostScript على أي شاشة كمبيوتر وتحويل صفحات الـ PostScript إلى رسوميات نقطية raster graphics مثل TIFF وPNG، والتنسيقات المتجهية مثل PDF. وهناك عدد من تطبيقات الترجمة التجارية للـ PostScript كذلك، مثل T-Script من شركة TeletypeSetting Co.

علاوةً على ذلك، وعند مرحلة معينة، اجتمعت فرق من شركتي Apple ومايكروسوفت لمحاولة فك احتكار Adobe لطابعات الليزر، حيث رخّصت مايكروسوفت لشركة أبل تطبيق ترجمة متوافق مع PostScript كانت قد اشترته ويُدعى TrueImage، وفي المقابل رخّصت Apple لمايكروسوفت نسق خطوطها الجديد TrueType (وقد انتهى الحال بـ Apple للوصول إلى اتفاق مع Adobe قامت بمقتضاه بترخيص PostScript الأصلي لطابعاتها، ولكن TrueType ظل هو تقنية الخط الحدودي القياسية المستعملة مع كل من أنظمة الويندوز والماكينتوش).

كذلك، ولا تزال بعض الأجهزة العالية الدقة، مثل طابعات الـ imagesetters أو الـ CTP platesetters، والتي تتجاوز فيها قيمة الدقة 2500 نقطة/بوصة (2500 dpi)، تستلزم معالجات صور نقطية (RIPs) خارجية بذاكرة ومساحات ضخمة. كما تستعمل كذلك أنظمة طابعات الليزر المكلفة (والتي تعرف بالمطابع الرقمية digital presses) معالجات صور نقطية خارجية لفصل الكمبيوتر الذي يمكن ترقيته بسهولة عن مكونات الطباعة المتخصصة. وتتخصص شركات مثل EFI وXitron في مثل هذه البرمجيات.

من جهة ثانية، وقد أدى ذلك – إلى جانب عامل التكلفة- لشيوع تطبيقات أخرى للـ PostScript من قبل شركات أخرى، خاصة في الطابعات منخفضة التكلفة (حيث كانت رسوم الترخيص هي الحجرة العثرة في الموضوع) أو في أجهزة التنضيد الطباعي (والتي استلزمت فيها الحاجة للسرعة دعمًا لمنصات جديدة أسرع مما استطاعت Adobe توفيره).

ما رأيك في هذه المقالة؟

📝 هل في هذه المقالة خطأ؟

إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.