Постскрипт

Постскрипт

PostScript (Постскрипт) — язык описания страниц, в основном используемый в настольных издательских системах.

Содержание

Идеология

Postscript был разработан Джоном Уорноком и Чаком Гешке из Adobe Systems в начале 80-х гг. Исходно Postscript использовался как ядро механизма печати компьютеров принтере (или отображает на экране монитора) следующие друг за другом страницы.

История

Концепция языка PostScript была заложена в 1976 году Джоном Уорноком (John Warnock), сотрудником Evans and Sutherland Computer Corporation. Его коллега Джон Гэфни (John Gaffney), занимавшийся тогда интерпретатором для большой базы данных трёхмерной графики Нью-Йоркского порта, создал язык «Design System» (очень похожий на FORTH). Позже Джон Уорнок перешёл в исследовательский центр Xerox в Пало-Альто (Xerox P.A.R.C.) и вместе с Мартином Ньювелом (Martin Newell) создал на базе Design System новую систему JaM (John and Martin), использовавшуюся в исследованиях печати и развившейся в InterPress, протокол печати 1982 году Джон Уорнок уволился из Xerox и вместе с Чаком Гешке (Chuck Geschke) основал Adobe Systems Inc. Вначале их целью было создание специализированной рабочей станции для печати, которая должна была называться PostScript, но они вскоре поняли, что лучше сконцентрировать усилия на разработке средств для управления принтерами сторонних производителей.

В 1984 году увидел свет PostScript (позже к названию было добавлено Level 1, чтобы отличать его от Level 2). Postscript имел огромные преимущества перед другими системами того времени:

  • Платформонезависимость. Один и тот же файл мог печататься как на лазерном принтере, выдававшем тогда 300
  • Любой производитель мог лицензировать интерпретатор PostScript и использовать PostScript со своим устройством.
  • Спецификации PostScript были общедоступны, таким образом, любой разработчик мог писать программы, поддерживающие PostScript.

Adobe рисковала, выпуская PostScript, и, возможно, ей не удалось бы убедить рынок в необходимости такого языка, если бы не Стив Джобс из Apple Computer. В 1985 году продажи компьютеров Aldus, создавшую программу, использовавшую все возможности Macintosh и LaserWriter — PageMaker. Появившаяся тогда возможность допечатной подготовки на компьютере спасла Apple и превратила Adobe и Aldus в крупные компании. Другие производители фотонаборной аппаратуры, начиная с Linotype, оценили PostScript и вскоре оснастили свою фотонаборную аппаратуру интерпретаторами PostScript. PostScript стал стандартом в области допечатной подготовки.

В 1991 Adobe выпустила следующую ревизию PostScript — PostScript Level 2. Это была значительная переработка, давно ожидавшаяся издательским сообществом.

Основными улучшениями были:

Adobe совершила ошибку, обнародовав спецификации PostScript Level 2 до начала работ по его аппаратной реализации. Конкуренты неожиданно вышли на рынок с эмуляторами PostScript Level 2 раньше самой Adobe. В результате потребовалось очень много времени, прежде чем приложения начали использовать все новые функции PostScript level 2. Такая функция, как цветоделение в контроллере до сих пор не поддерживается XPress 5, хотя с момента выхода Level 2 прошло много лет.

В 1998 году Adobe ввела новый стандарт PostScript 3. Изменения по сравнению с Level 2 незначительны. Это можно понять, учитывая, что множество приложений до сих пор не могут обеспечить полную поддержку PostScript Level 2.

Основные преимущества PostScript 3:

Область применения

PostScript соединил в себе лучшие возможности принтеров и плоттеров. Подобно плоттерам, PostScript предоставляет возможность вывода высококачественной векторной графики и единый язык управления, который может быть использован любым производителем принтеров. Подобно матричным принтерам, PostScript предлагает удобные возможности по печати растровой графики и текста. В отличие от тех и других, PostScript может совмещать все эти типы вывода на одной странице, давая намного больше гибкости, чем до этого имел любой принтер или плоттер.

PostScript — больше, чем типичный язык управления принтером, он является полнофункциональным языком программирования. Многие прикладные программы могут преобразовать документ в PostScript-программу, при выполнении которой будет получен начальный документ. Эта программа может быть послана непосредственно на принтер с поддержкой PostScript или преобразована интерпретатором PostScript в другой формат (для принтеров без поддержки PostScript), или результат её выполнения интепретатором может быть показан на экране. Так как исходная PostScript-программа одна и та же, PostScript называется независимым от устройства.

Большинство высокопроизводительных принтеров и плоттеров имеют встроенный интерпретатор языка PostScript. В то же время, простые принтеры домашнего класса поддерживают только элементарные графические операции, поэтому задача создания растрового изображения возлагается на центральный процессор. Существуют интерпретаторы языка PostScript для различных операционных систем, наиболее известный из них — свободная программа Ghostscript.

Язык

Постскрипт — полнофункциональный язык программирования. Хотя программы на Постскрипте и создаются в основном не людьми, а другими программами, в принципе ничто не мешает писать на нём программы для обсчёта графики, реализации численных методов решения математических задач и т. п.

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

PostScript имеет черты метафайла, совмещая поддержку как векторных, так и растровых изображений. Шрифты в PostScript только векторные. Положение элементов на странице задаётся в типографских пунктах.

Структура документа

Структура файла PostScript формируется структурными комментариями. Структурные комментарии начинаются с последовательности символов «%%» в начале строки.

Файл PostScript состоит из четырёх частей: заголовка, пролога, тела и эпилога.

Заголовок начинается строкой «%!PS-Adobe-N.M» где N.M — версия спецификации, далее идут структурные комментарии с общими свойствами документа, и заканчивается заголовок строкой «%%EndComments».

%!PS-Adobe-2.0
%%Creator: dvips(k) 5.78 Copyright 1998 Radical Eye Software
%%Title: rep.dvi
%%Pages: 9
%%PageOrder: Ascend
%%BoundingBox: 0 0 596 842
%%EndComments

В прологе обычно содержатся описания подпрограмм и данные, необходимые для печати документа — например, процедуры и шрифты. Пролог заканчивается комментарием «%%EndProlog».

В теле программы содержатся команды, отвечающие за отрисовку каждой страницы, предваряемые строкой «%%Page: <метка> <номер>», где <метка> — метка страницы, которая не выводится на печать, и <номер> — порядковый номер страницы в файле, например, %%Page: iii 3

После команд отрисовки всех страниц идёт структурный комментарий «%%Trailer», после чего начинается эпилог.

В эпилоге можно продублировать комментарии из заголовка (это реализовано на случай, если в начале вывода программе ещё не известно, например, число страниц) — в этом случае вместо числовых значений параметров в заголовке надо писать «(atend)».

Заканчивается файл строкой «%%EOF».

Обзор элементов языка

Стеки

В PostScript для хранения данных разных типов используются четыре стека: стек операндов, стек графических контекстов, стек исполнения, стек словарей.

Типы данных

Основные типы данных языка PostScript: целое число со знаком, вещественное число, логическое выражение (true или false), строка символов ( ( … ) ), массив ( [ … ] ), процедура ( { … } ), словарь, имя.

Операторы

Операторы в PostScript получают операнды (параметры), вынимая их из стека, и записывают результаты действий (если они есть) также в стек. Такой стиль программирования, при котором операнды задаются до операции над ними (оператора), называется постфиксной нотацией. Например, для сложения двух заданных чисел необходимо вначале поместить их в вершину стека операндов, затем выполнить команду add, которая извлечёт из стека два элемента, помещённые последними (то есть заданные числа), сложит их и запишет результат в стек, откуда он сможет быть извлечён другой операцией в качестве операнда. Это записывается так:

4 5 add

Операторы PostScript можно разделить на несколько групп. Это операторы для работы с содержимым стека (независимо от типа), арифметические операции, операторы работы с массивами, работы со словарями, работы со строками, сравнения, управления потоком команд, работы с типом аргументов и преобразования, доступа и работы с файлами, работы с виртуальной памятью, графического состояния и другие. Описания операторов PostScript можно найти в [5], краткие описания наиболее употребительных операторов на русском языке можно найти в [1].

Пример программы

%!PS-Adobe-1.0
% По умолчанию, постскрипт использует единицу измерения 1 пункт=1/72 дюйма, 
% а нам нравятся миллиметры.
72 25.4 div           % 1 мм = 72/25.4 пунктов
dup                   % дублировать значение на вершине стека
scale                 % растянуть в это количество раз по обеим координатам
100 100 translate     % установить начало координат в (100мм, 100мм)
 
/Times-Roman findfont % взять шрифт Times-Roman
10 scalefont          % растянуть до размера 10 (у нас единица измерения - мм!)
setfont               % установить выбранный шрифт
 
0 30 330 {            % цикл для углов от 0 до 330 с шагом 30
  gsave                 % запомнить текущее преобразование координат
    rotate              % повернуть систему координат (угол в градусах берём с вершины стека)
    15 0 moveto         % перейти в точку (15мм, 0мм)
    (Wikipedia) show    % написать слово текущим шрифтом
  grestore              % вернуть преобразование координат
} for                 % конец цикла for
 
showpage              % вывести страницу

Вывод программы

Вывод программы

Тенденции и перспективы

В настоящее время помимо PostScript на рынке лазерных принтеров широкое распространение получил язык управления принтером Hewlett-Packard. PCL — язык управления принтером, он изначально нацеливался на иные задачи, чем PostScript, и не может обеспечивать переносимость. Фактически это язык управления принтером. Однако для офисного использования он в ряде случаев более удобен.

PCL использует стандартные Windows-шрифты Microsoft и потому обеспечивает ускоренный возврат ответа в приложение, быструю печать сложных графических изображений, улучшенное качество печати и повышенную точность при выводе документов.

Кроме того, язык PostScript предполагает лицензирование и выплату лицензионных отчислений Adobe с каждого контроллера RIP (Raster Image Processor), в то время как язык PCL может использоваться сторонними производителями бесплатно. Поэтому в настоящее время лицензированные RIP PostScript 3 для плоттеров производства HP стоят около 500 долларов, в то время как нелицензированные контроллеры — «эмуляция PS2» производства OKI стоят 30-70 долларов.

В результате, если десять лет назад практически все лазерные принтеры поддерживали PostScript в качестве основного языка, то в настоящее время множество лазерных принтеров класса SOHO не оснащается поддержкой PostScript c целью удешевления. Таким образом, PostScript вытесняется из офисов языком PCL, оставаясь, тем не менее, практически безальтернативным стандартом в области допечатной подготовки.

Ссылки

  1. http://vkacl.narod.ru/pstut - Книга на русском языке с описанием основных команд языка PostScript и конкретными примерами программ
  2. http://psdraw.narod.ru — Русский сайт о языке и технологии PostScript
  3. The history of PostScript
  4. History of PostScript
  5. First Guide to PostScript
  6. PostScript Language Reference, 3rd ed. Published by Addison-Wesley, ISBN 0-201-37922-8
  7. PostScript Language Tutorial and Cookbook
  8. Glenn C. Reid. Thinking in PostScript. Addison-Wesley, 1990.
  9. Роберт Шимонски Освой самостоятельно Unix. 10 минут на урок = Sams Teach Yourself Unix in 10 Minutes. — М.: «Вильямс», 2006. — С. 272. — ISBN 0-672-32764-3
  10. С. Немнюгин, М. Чаунин, А. Комолкин. Эффективная работа в UNIX. СПб.: «Питер», 2001. ISBN 5-272-00197-4
  11. Романовский Иосиф Владимирович, Столяр Сергей Ефимович. «Стеки и стековые языки», Учебное пособие. — СПб.: Издательство ЦПО «Информатизация образования», 2002. — 35 с.
  12. PostScript или PDF?
  13. Языки PCL и PostScript

Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?
Синонимы:

Полезное


Смотреть что такое "Постскрипт" в других словарях:

  • ПостСкрипт — (PostScript)     Компьютерный язык описания страниц, разработанный компанией Adobe Systems для применения в профессиональных устройствах для печати (принтерах). Описывает элементы изображений, включая шрифт, не как ряды точек, а как серию… …   Шрифтовая терминология

  • постскрипт — сущ., кол во синонимов: 1 • язык (247) Словарь синонимов ASIS. В.Н. Тришин. 2013 …   Словарь синонимов

  • постскрипт — Стандартный командный язык управления фотонаборными аппаратами. [http://ofyug.ru/useful/abc/680] Тематики полиграфия …   Справочник технического переводчика

  • постскрипт-файл — сущ., кол во синонимов: 1 • файл (8) Словарь синонимов ASIS. В.Н. Тришин. 2013 …   Словарь синонимов

  • постскрипт-шрифт — сущ., кол во синонимов: 1 • шрифт (38) Словарь синонимов ASIS. В.Н. Тришин. 2013 …   Словарь синонимов

  • ПостСкрипт Тайп 1 — (PostScript Type 1)     формат [способ описания формы букв и кодирования цифрового шрифта] цифровых шрифтов, разработанный компанией Adobe. Подобно шрифтам TrueType, шрифты PostScript Type 1 хранятся в виде масштабируемых контуров, которые… …   Шрифтовая терминология

  • постскрипт-файл — Файл, создаваемый настольно издательской системой и содержащий всю необходимую для фотонаборного аппарата информацию и команды. [http://ofyug.ru/useful/abc/681] Тематики полиграфия …   Справочник технического переводчика

  • Постскрипт — В полиграфии – командный язык описания страниц. Разработан компанией Adobe. Используется для управления принтерами, имиджсеттерами и другими устройствами вывода, применяемыми в полиграфии …   Краткий толковый словарь по полиграфии

  • постскрипт — (анг. PostScript) комп. програмски јазик од високо ниво за опис на страница широко применуван за печатење на текст и графика на ласерски печатар (принтер) со висока резолуција не е ни хардверски ни софтверски зависен …   Macedonian dictionary

  • Постскрипт-файл — Файл, создаваемый настольно издательской системой и содержащий всю необходимую для фотонаборного аппарата и других устройств вывода информацию и команды …   Краткий толковый словарь по полиграфии


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»