Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

PostScript ( PS ) - это язык описания страниц в сфере электронных и настольных издательских систем . Это динамически типизированных , конкатенативный язык программирования . Он был создан в Adobe Systems по Джон Уорнок , Чарльз Гешке , Даг Brotz, Ed Taft и Билл Пэкстон с 1982 по 1984 год .

История [ править ]

Понятия языка PostScript были посеяны в 1976 году Джон Gaffney на Эванса & Sutherland , [2] [3] [4] компьютерной графики компании. В то время Гаффни и Джон Варнок разрабатывали интерпретатор для большой базы данных трехмерной графики гавани Нью-Йорка .

Одновременно с этим исследователи из Xerox PARC разработали первый лазерный принтер и осознали необходимость стандартных средств определения изображений страниц. В 1975-76 годах Боб Спроул и Уильям Ньюман разработали формат Press, который в конечном итоге использовался в системе Xerox Star для управления лазерными принтерами. Но Press, формату данных, а не языку, не хватало гибкости, и PARC приложил усилия для создания преемника Interpress .

В 1978 году Джон Гаффни и Мартин Ньюэлл, работавшие тогда в Xerox PARC, написали J&M или JaM [5] [6] (для «Джон и Мартин»), которые использовались для проектирования СБИС и исследования печати шрифтов и графики. Позднее эта работа получила развитие и расширилась до языка Интерпресс.

Варнок ушел с Чаком Гешке и основал Adobe Systems в декабре 1982 года. Они вместе с Дугом Бротцем, Эд Тафт и Биллом Пакстоном создали более простой язык, похожий на Interpress, под названием PostScript, который появился на рынке в 1984 году. их посетил Стив Джобс , который призвал их адаптировать PostScript для использования в качестве языка управления лазерными принтерами.

В марте 1985 года Apple LaserWriter стал первым принтером, поставляемым с PostScript, что привело к революции настольных издательских систем (DTP) в середине 1980-х годов. Сочетание технических достоинств и широкой доступности сделало PostScript предпочтительным языком для графического вывода для приложений печати. Какое-то время интерпретатор (иногда называемый RIP для процессора растровых изображений) для языка PostScript был обычным компонентом лазерных принтеров, вплоть до 1990-х годов.

Однако стоимость внедрения была высокой; компьютеры выводят необработанный код PS, который будет интерпретироваться принтером в растровое изображение с естественным разрешением принтера. Для этого требовались высокопроизводительные микропроцессоры и большой объем памяти . LaserWriter использовал Motorola 68000 с частотой 12 МГц., что делает его быстрее, чем любой из компьютеров Macintosh, к которым он подключен. Когда сами двигатели для лазерных принтеров стоили более тысячи долларов, добавленная стоимость PS была незначительной. Но по мере того, как механизмы принтера упали в цене, стоимость внедрения PS стала слишком большой частью общей стоимости принтера; Вдобавок, когда настольные компьютеры становились все более мощными, больше не имело смысла переложить работу по растеризации на принтер с ограниченными ресурсами. К 2001 году несколько моделей принтеров более низкого уровня поставлялись с поддержкой PostScript, в основном из-за растущей конкуренции со стороны гораздо более дешевых струйных принтеров, отличных от PostScript, и новых программных методов для визуализации изображений PostScript на компьютере, что делало их подходящими для любого принтера. ; PDF, потомок PostScript, предоставляет один из таких методов и в значительной степени заменил PostScript как стандарт де-факто для распространения электронных документов.

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

PostScript уровня 1 [ править ]

Первая версия языка PostScript была выпущена на рынок в 1984 году. Суффикс Level 1 был добавлен, когда был представлен Level 2.

PostScript уровня 2 [ править ]

PostScript Level 2 был представлен в 1991 году и включал в себя несколько улучшений: повышенную скорость и надежность, поддержку разделения in-RIP, распаковку изображений (например, изображения JPEG можно было визуализировать с помощью программы PostScript), поддержку составных шрифтов и форму механизм кеширования повторно используемого контента.

PostScript 3 [ править ]

PostScript 3 (Adobe отказался от терминологии «уровня» в пользу простого управления версиями) появился в конце 1997 года и, наряду со многими новыми версиями старых операторов на основе словарей, представил улучшенную обработку цвета и новые фильтры (которые позволяют выполнять сжатие внутри программы. / декомпрессия, фрагменты программ и расширенная обработка ошибок).

PostScript 3 имел большое значение с точки зрения замены существующих проприетарных систем цветной электронной допечатной подготовки, которые затем широко использовались для производства журналов, благодаря введению операций плавного затенения с использованием до 4096 оттенков серого (вместо 256, доступных в PostScript Level 2), поскольку а также DeviceN, цветовое пространство, которое позволяло добавлять дополнительные цвета чернил (так называемые плашечные цвета ) в составные цветные страницы.

Использование в печати [ править ]

До PostScript [ править ]

До появления PostScript принтеры были разработаны для печати символьного вывода с учетом текста - обычно в формате ASCII - в качестве ввода. Для этой задачи существовало несколько технологий, но большинство из них разделяли то свойство, что глифы было физически трудно изменить, поскольку они были нанесены на клавиши пишущей машинки , металлические полосы или оптические пластины.

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

В матричных принтерах также появилась возможность печатать растровую графику . Графика была интерпретирована компьютером и отправлена ​​на принтер в виде серии точек с использованием серии escape-последовательностей . Эти языки управления принтером варьировались от принтера к принтеру, что требовало от авторов программ создания множества драйверов .

Печать векторной графики была предоставлена ​​специализированным устройствам - плоттерам . Почти все плоттеры использовали общий командный язык HPGL , но их использование было ограниченным для чего-либо, кроме печати графики. Кроме того, они были дорогими и медленными, а потому редкими.

Печать PostScript [ править ]

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

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

PostScript примечателен тем, что реализует растеризацию «на лету», в которой все, даже текст, задается в виде прямых линий и кубических кривых Безье (ранее существовавших только в приложениях САПР ), что позволяет произвольное масштабирование, вращение и другие преобразования. Когда программа PostScript интерпретируется, интерпретатор преобразует эти инструкции в точки, необходимые для формирования вывода. По этой причине интерпретаторы PostScript иногда называют обработчиками растровых изображений PostScript или RIP.

Обработка шрифтов [ править ]

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

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

В то время технология включения этих подсказок в шрифты тщательно охранялась, а шрифты с подсказками были сжаты и зашифрованы в то, что Adobe называла шрифтом Type 1 (также известный как шрифт PostScript Type 1 , PS1 , T1 или Adobe Type 1 ). Тип 1 был фактически упрощением системы PS для хранения только контурной информации, в отличие от полного языка (PDF аналогичен в этом отношении). Затем Adobe будет продавать лицензии на технологию Type 1 тем, кто хочет добавить подсказки к своим собственным шрифтам. Тем, кто не лицензировал технологию, был оставлен шрифт Type 3 (также известный как шрифт PostScript Type 3 , PS3 илиТ3 ). Шрифты Type 3 учитывали всю сложность языка PostScript, но без стандартизированного подхода к хинтингу.

Формат шрифта Type 2 был разработан для использования со строками символов Compact Font Format (CFF) и реализован для уменьшения общего размера файла шрифта. Формат CFF / Type2 позже стал основой для обработки контуров PostScript в шрифтах OpenType .

Формат шрифта с CID-ключом также был разработан для решения проблем, связанных со шрифтами OCF / Type 0 , для решения сложной кодировки азиатских языков ( CJK ) и проблем с очень большим набором символов. Формат шрифта с CID-ключом может использоваться с форматом шрифта Type 1 для стандартных шрифтов с CID-ключом или Type 2 для шрифтов OpenType с CID-ключом.

Чтобы конкурировать с системой Adobe, Apple разработала свою собственную систему TrueType примерно в 1991 году. Сразу после объявления TrueType Adobe опубликовала спецификацию для формата шрифта Type 1. Такие розничные инструменты, как Altsys Fontographer (приобретенные Macromedia в январе 1995 г., принадлежащие FontLab с мая 2005 г.) добавили возможность создавать шрифты Type 1. С тех пор было выпущено много бесплатных шрифтов Type 1; например, в этом формате доступны шрифты, используемые в системе набора текста TeX .

В начале 1990-х годов было несколько других систем для хранения контурных шрифтов, разработанных, например, Bitstream и METAFONT , но ни одна из них не включала универсальное решение для печати, и поэтому они не получили широкого распространения.

В конце 1990-х годов Adobe присоединилась к Microsoft в разработке OpenType , по сути, функционального надмножества форматов Type 1 и TrueType. При печати на устройство вывода PostScript ненужные части шрифта OpenType опускаются, а то, что отправляется на устройство драйвером, такое же, как и для шрифта TrueType или Type 1, в зависимости от того, какие контуры были присутствует в шрифте OpenType.

Другие реализации [ править ]

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

Это, а также проблемы стоимости привели к тому, что сторонние реализации PostScript стали обычным явлением, особенно в недорогих принтерах (где лицензионный сбор был камнем преткновения) или в высокопроизводительном наборном оборудовании (где стремление к скорости требовало поддержки новых платформ. быстрее, чем могла предоставить Adobe). В какой-то момент Microsoft передала Apple купленный PostScript-совместимый интерпретатор под названием TrueImage , а Apple предоставила Microsoft лицензию на новый формат шрифтов TrueType . В итоге Apple достигла соглашения с Adobe и лицензировала подлинный PostScript для своих принтеров, но TrueType стал стандартной технологией контурных шрифтов как для Windows, так и для Macintosh.

Сегодня сторонние PostScript-совместимые интерпретаторы широко используются в принтерах и многофункциональных периферийных устройствах (МФУ). Например, интерпретатор IPS PS3 [7] компании CSR plc , ранее известный как PhoenixPage, входит в стандартную комплектацию многих принтеров и МФУ, в том числе разработанных Hewlett-Packard и продаваемых под линиями LaserJet и Color LaserJet. Другие сторонние решения PostScript, используемые производителями принтеров и МФУ, включают Jaws [8] и Harlequin RIP от Global Graphics . Бесплатное программное обеспечение версии с несколькими другими приложениями, является Ghostscript. Несколько совместимых интерпретаторов перечислены на вики-странице недокументированной печати. [9]

Некоторые базовые недорогие лазерные принтеры не поддерживают PostScript, вместо этого поставляются с драйверами, которые просто растрируют собственные графические форматы платформы, а не сначала конвертируют их в PostScript. Когда для такого принтера требуется поддержка PostScript, можно использовать Ghostscript. Существует также ряд коммерческих интерпретаторов PostScript, например T-Script от TeleType Co.

Использовать как систему отображения [ править ]

PostScript стал коммерчески успешным благодаря введению графического пользовательского интерфейса (GUI), позволяющего дизайнерам напрямую размещать страницы для последующего вывода на лазерные принтеры. Однако собственные графические системы графического интерфейса пользователя были гораздо менее сложными, чем PostScript; Например, QuickDraw от Apple поддерживает только базовые линии и дуги, а не сложные B-сплайны и расширенные параметры заполнения области PostScript. Чтобы в полной мере использовать преимущества печати PostScript, приложениям на компьютерах пришлось повторно реализовать эти функции с использованием собственной графической системы хост-платформы. Это привело к многочисленным проблемам, из-за которых макет на экране не полностью соответствовал печатному изданию из-за различий в реализации этих функций.

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

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

Когда Стив Джобс покинул Apple и основал NeXT , он предложил Adobe идею использования PS в качестве системы отображения для своих новых компьютеров. Результатом стал Display PostScript или DPS. В DPS добавлены базовые функции для повышения производительности за счет преобразования многих поисков строк в 32-битные целые числа, добавления поддержки прямого вывода с каждой командой и добавления функций, позволяющих графическому интерфейсу пользователя проверять диаграмму. Кроме того, набор «привязок» был предоставлен , чтобы позволить PS кода , который будет вызываться непосредственно из языка программирования Си . NeXT использовал эти привязки в своей системе NeXTStep для обеспечения объектно-ориентированногографическая система. Хотя DPS был написан совместно с NeXT, Adobe продавала его на коммерческой основе, и в 1990-х это было обычным явлением для большинства рабочих станций Unix .

Sun Microsystems применила другой подход, создав NeWS . Вместо концепции DPS, позволяющей PS взаимодействовать с программами на языке C, NeWS расширил PS до языка, подходящего для запуска всего графического интерфейса пользователя компьютера. Sun добавила ряд новых команд для таймеров, управления мышью, прерываний и других систем, необходимых для интерактивности, а также добавила структуры данных и языковые элементы, чтобы сделать его полностью объектно-ориентированным внутри. Полный графический интерфейс, фактически три, были написаны на NeWS и какое-то время предоставлялись на их рабочих станциях. Однако продолжающиеся усилия по стандартизации системы X11 привели к ее внедрению и широкому использованию в системах Sun, а NeWS так и не получил широкого распространения.

Язык [ править ]

PostScript - это полный по Тьюрингу язык программирования, принадлежащий к конкатенативной группе. Обычно программы PostScript создаются не людьми, а другими программами. Однако можно писать компьютерные программы на PostScript, как и на любом другом языке программирования. [10]

PostScript - это интерпретируемый , основанный на стеке язык, похожий на Forth, но с сильной динамической типизацией , структурами данных, вдохновленными лиспом , ограниченной памятью и, начиная с уровня языка 2, сборкой мусора . Синтаксис языка использует обратную польскую нотацию , что делает порядок операций однозначным, но чтение программы требует некоторой практики, потому что нужно помнить о структуре стека . Большинство операторов (которые в других языках называют функциями ) берут свои аргументы из стека и помещают свои результаты в стек.Литералы (например, числа) помещают свою копию в стек. Сложные структуры данных могут быть построены натипах массивов и словарей , но не могут быть объявлены в системе типов, которая видит их все только как массивы и словари, так что любая дальнейшая дисциплина ввода, которая будет применяться к таким определяемым пользователем «типам», остается к коду, который их реализует.

Символ «%» используется для ввода комментариев в программах PostScript. По общему соглашению каждая программа PostScript должна начинаться с символов «%! PS» в качестве директивы интерпретатора, чтобы все устройства правильно интерпретировали ее как PostScript.

"Привет, мир" [ править ]

Программа Hello World , обычный способ показать небольшой пример полной программы на данном языке, может выглядеть в PostScript (уровень 2) следующим образом:

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

или если у устройства вывода есть консоль

 %! PS  (Привет, мир!)  =

Единицы длины [ править ]

PostScript использует точку как единицу длины. Однако, в отличие от некоторых других версий точки, PostScript использует ровно 72 точки на дюйм. Таким образом:

1 балл = 1/72 дюйм = 25,4/72 мм = 127/360 мм = 352,777… микрометров

Например, чтобы нарисовать вертикальную линию длиной 4 см, достаточно набрать:

0 0 переместить 0 113.385827 Линейный ход

Более читабельно и идиоматично, можно было бы использовать следующий эквивалент, который демонстрирует простое определение процедуры и использование математических операторов mulи div:

/ см  { 72  муль  2,54  дел. } по  умолчанию  % 1 дюйм = 2,54 см ровно  0  0  переместиться на  0  4  см  линии для  хода

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

Программное обеспечение [ править ]

Список программного обеспечения, которое можно использовать для рендеринга документов PostScript:

  • Ghostscript
  • pstoedit
  • Затура

См. Также [ править ]

  • Adobe StandardEncoding (набор символов PostScript)
  • Соглашения о структурировании документов
  • Шрифт
  • Компьютерный шрифт
  • Инкапсулированный PostScript
  • Описание принтера PostScript (PPD)
  • Язык команд принтера (PCL)
  • Латекс

Ссылки [ править ]

  1. Перейти ↑ Perry, TS (май 1988 г.). « POSTSCRIPT“печатает что - нибудь: история болезни». IEEE Spectrum . 25 (5): 42–46. DOI : 10.1109 / 6.4550 . S2CID  33376390 .
  2. ^ Рейли, Эдвин (2003). Основные этапы развития компьютерных наук и информационных технологий . Издательская группа "Гринвуд". п. 206 . ISBN 9781573565219.
  3. Peterson, JK (28 июня 2018 г.). Иллюстрированный словарь по волоконной оптике . Группа Тейлор и Фрэнсис. ISBN 9781138455757.
  4. Перейти ↑ Nguyen, Binh (2004). Словарь Linux (изд. 0,16) . Проверено 28 сентября 2019 .
  5. ^ Рейли, Эдвин (2003). Основные этапы развития компьютерных наук и информационных технологий . Издательская группа "Гринвуд". п. 206 . ISBN 9781573565219.
  6. ^ Бьянкуцци, Федерико; Уорден, Шейн (2009). «Глава 16. PostScript». Идеи программирования . ISBN O'Reilly Media, Inc. 9780596515171.
  7. ^ IPS PS3 , CSR, заархивировано из оригинала 24.07.2012.
  8. ^ Челюсти , Глобальная графика
  9. ^ "Языки описания страниц: Postscript", Форматы (вики) , Недокументированная печать
  10. ^ Библиотека PostScript . Логово Гуру Дона Ланкастера.

Дальнейшее чтение [ править ]

  • Adobe Systems Incorporated (февраль 1999 г.) [1985 г.]. Справочное руководство по языку PostScript (PDF) (1-е издание, 3-е изд.). Издательство Эддисон-Уэсли . ISBN 0-201-37922-8. Архивировано из оригинального (PDF) 18 февраля 2017 года . Проверено 18 февраля 2017 .(NB. Эта книга ( PLR3 ) вместе с дополнением (PDF) , Архивировано из оригинала (PDF) на 2016-03-05 , извлекаются 2006-04-29 является де-факто определяющей работой над PostScript 3 и неофициально называется «красной книгой» из-за ее красной обложки.)
  • Adobe Systems Incorporated (1990) [1985]. Справочное руководство по языку PostScript (2-е изд.). Издательство Эддисон-Уэсли .(NB. Это издание ( PLR2 ) охватывает PostScript Level 2, а также содержит описание Display PostScript, которое больше не обсуждается в третьем издании.)
  • Adobe Systems Incorporated (1985). Справочное руководство по языку PostScript (1-е изд.). Издательство Эддисон-Уэсли .(NB. Это издание ( PLR1 ) охватывает PostScript уровня 1.)
  • Гешке, Чарльз (1986) [1985]. Предисловие. Учебник и поваренная книга по языку PostScript . Автор Adobe Systems Incorporated (27-е издание, август 1998 г., 1-е изд.). Издательство Эддисон Уэсли . ISBN 0-201-10179-3. 9-780201-101799 . Проверено 27 февраля 2017 . (NB. Этот вводный текст неофициально называют «голубой книгой» из-за ее синей обложки.)
  • Разработка программ на языке PostScript . Adobe Systems . Архивировано из оригинального (Zip) 13 июня 2011 года. (NB. Эту книгу неофициально называют «зеленой книгой» из-за ее зеленой обложки.)
  • Формат шрифта Type 1 (PDF) , Adobe, заархивировано из оригинала (PDF) 21 марта 2015 г. (NB. Эту книгу неофициально называют «черной книгой» из-за ее черной обложки.)
  • PostScript против PDF , Adobe, архивировано из оригинала 13апреля2016 г. (NB. Официальное предварительное сравнение PS, EPS и PDF.)
  • Первое руководство по PostScript , рекурсивный хвост
  • Кассельман, Уильям «Билл». Математические иллюстрации: Руководство по геометрии и PostScript (PDF) .[1]
  • Рид, Гленн (1990). Мыслить в PostScript (PDF) . Колорадо, США: Аддисон-Уэсли . (NB. Подробное руководство доступно в Интернете с любезного разрешения автора.)

Внешние ссылки [ править ]

  • Постскриптум в PDF