PostScript

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
PostScript
Парадигма Мультипарадигмальна: стеко-орієнтована, процедурна
Дата появи 1982; 38 років тому (1982)
Творці Джон Варнок, Чарльз Гешке, Даґ Бротц, Ед Тафт, Біл Пакстон
Розробник Adobe Systems
Система типізації Динамічна, сильна
Основні реалізації Adobe PostScript, TrueImage, Ghostscript
Під впливом від Interpress, Lisp
Вплинула на PDF
Звичайні розширення файлів .ps

PostScript — мова програмування та мова розмітки сторінок, в основному використовується у видавничих системах.

PostScript є стековою мовою програмування, яка схожа на FORTH, а структурами даних — на Lisp. Як і в FORTH, використовується зворотна польська нотація для визначення виразів.

Риси[ред. | ред. код]

Спочатку Postscript — це мова описів сторінок. Іншими словами, це мова програмування, що містить команди принтеру (такі принтери називаються PostScript-принтерами), і призначений для друку графіки і тексту. Створений фірмою Adobe. Важлива мета — незалежність від пристрою (реально Postscript не завжди повністю незалежний від пристрою).

Мова[ред. | ред. код]

PostScript — повнофункціональна мова програмування. Хоча програми на PostScript і створюються здебільшого не людьми, а іншими програмами, в принципі ніщо не заважає писати нею програми для обрахунку графіки, реалізації чисельних методів розв'язання математичних задач тощо.

PostScript — інтерпретована стекова мова, схожа на Форт. Синтаксис мови використовує зворотню польську нотацію, що робить непотрібним використання дужок, однак вимагає деякої практики для читання тексту програми через необхідність тримати в голові вміст стеку. Більшість операторів беруть операнди зі стеку і поміщають результат обчислень на стек. Літерали (рядки і числа) поміщають свою копію на стек.

У PostScript для малювання використовується двовимірна прямокутна система координат, початок якої збігається з лівим нижнім кутом сторінки; вісь X за замовчуванням спрямована горизонтально (тобто по ширині сторінки), вісь Y — вертикально. Одиницею вимірювання лінійних координат служить типографський пункт. За допомогою операторів мови початок системи координат може бути перенесено в будь-яку точку (оператор translate), а сама система — повернута на довільний кут у площині сторінки (оператор rotate); масштаб по кожній з двох осей за допомогою оператора scale також може бути змінений.

Наприклад, «дзеркальне» виведення зображення на плівку (т.зв. «Emulsion down») в PostScript-принтерах здійснюється за допомогою одного єдиного оператора scale, що задає негативний масштаб по одній з осей системи координат: наприклад, -1.0 1.0 scale.

PostScript має риси метафайлу, поєднуючи підтримку як векторних, так і растрових зображень.

Шрифти в PostScript тільки векторні. Трохи осторонь стоять так звані Type3-шрифти, в яких для малювання гліфи (процедура /BuildGlyph) може бути використана будь-яка процедура, сформульована в термінах мови PostScript.

Після виходу SP4 для Windows NT 4.0 в 1998 році) при встановленому у системі Adobe Type Manager 4.0 і драйвері AdobePS 5 всі шрифти в не-roman кодуванні, зокрема кирилиця вивантажувалися в PostScript-файл у вигляді Type3-шрифтів, де кожен гліф був представлений у вигляді растрового зображення відповідної роздільної здатності. Вивантаження шрифту у вигляді растрових зображень створило багато проблем при підготовці до виводу на фотонабір і додрукарської підготовки взагалі. Ця помилка була виправлена в AdobePS 5.1 і Adobe Type Manager 4.1, які потім увійшли в дистрибутив Windows 2000.

"Hello world"[ред. | ред. код]

Програма Hello world!, на PostScript може виглядати так:

 %!PS
 /Courier             % назва бажаного шрифта
 20 selectfont        % вибрати розмір і задати цей шрифт як поточний
 72 500 moveto        % Перемістити курсор в дані координати
                      % (початок в лівому нижньому куті сторінки)
 (Hello world!) show  % вивести текст в дужках
 showpage             % показати все на сторінці

Функції[ред. | ред. код]

Окрім звичайних математичних операторів, в мові визначено багато функцій для роботи з графічними об'єктами.

Використання[ред. | ред. код]

Історично, PostScript призначено для використання у видавничих системах. Перед роздруковуванням файлу в форматі PostScript, його зміст інтерпретується спеціальним інтерпретатором, який видає команди для друку.

Перетворити будь-який документ у формат Postscript не так вже й складно. Для цього достатньо, щоб документ можна було роздрукувати з якої-небудь Windows-програми. Наприклад, маючи MS Word, можна перетворити .doc у Postscript, маючи Netscape або Internet Explorer, можна перетворити HTML в Postscript, і т. д. Для цього потрібно:

  • встановити на комп'ютері драйвер PostScript-принтера (у Windows 95: Пуск -> Настройка -> Панель управління -> Принтери -> Установка принтера)
  • роздрукувати документ, вибравши цей драйвер і встановивши опцію «Друк у файл» (краще всього в установках драйвера принтера задати «Архівний формат»)
  • вкажіть, в який файл зберегти («роздрукувати») документ (бажано при цьому використовувати розширення .ps, а не .prn, як пропонують деякі програми).

Знайти драйвер PostScript-принтера, маючи доступ до Інтернет, не складає особливих труднощів.

Якщо у Вас є PostScript-принтер, то, як природно чекати, можна роздрукувати на ньому файл Postscript безпосередньо, запустивши команду вигляду:

<команда друку> <ім'я файлу>

Для проглядання/друку файлів Postscript можна використовувати безкоштовні програми Ghostscript, GSView.

Документи у форматі Postscript часто архівують як zip або gzip, тому можуть знадобитися відповідні розпакувальники.

При використанні Ghostscript/gsview, можна зіткнутися з проблемою, коли програма бачить тільки першу сторінку тексту. Спробуйте в цьому випадку використати текстовий редактор, щоб відкрити файл і замінити кожен рядок, який починається з %! Ps-adobe- на %! Це, принаймні, дозволить перегортати файл вперед (але не назад).

Використовуючи відповідні інтерпретатори PostScript (наприклад, Ghostscript), можна переглядати зображення на моніторі комп'ютера.

Див. також[ред. | ред. код]

Посилання[ред. | ред. код]