PostScript - Википедия - PostScript

PostScript
ПарадигмаМультипарадигма: на основе стека, процедурный
РазработаноДжон Варнок, Чак Гешке, Дуг Бротц, Эд Тафт, Билл Пакстон
РазработчикAdobe Systems
Впервые появился1982; 38 лет назад (1982)
Стабильный выпуск
PostScript 3/1997; 23 года назад (1997)
Печатная дисциплинаДинамичный, сильный
Основной реализации
Adobe PostScript, TrueImage, Ghostscript
Под влиянием
Меса,[1] Интерпресс, Лисп
Под влиянием
PDF
PostScript (формат файла)
Расширение имени файла
.ps
Тип интернет-СМИ
приложение / постскриптум
Единый идентификатор типа (UTI)com.adobe.postscript
Магическое число%!
РазработанAdobe Systems
Тип форматаформат файла для печати
Расширен доИнкапсулированный PostScript

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

История

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

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

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

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

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

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

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

PostScript Уровень 1

Первая версия языка PostScript была выпущена на рынок в 1984 году. Суффикс 1-й уровень был добавлен, когда был введен Уровень 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, a цветовое пространство это позволило добавить дополнительные цвета чернил (так называемые плашечные цвета ) в составные цветные страницы.

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

До PostScript

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

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

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

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

Печать PostScript

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

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

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

Обработка шрифтов

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

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

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

В Шрифт типа 2 формат был разработан для использования с Компактный формат шрифта (CFF) charstrings и был реализован для уменьшения общего размера файла шрифта. В CFF / Тип2 формат позже стал основой для обработки контуров PostScript в OpenType шрифты.

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

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

В начале 1990-х годов было несколько других систем хранения контурных шрифтов, разработанных Bitstream и МЕТАФОНТ например, но ни один из них не включал решения для печати общего назначения, и поэтому они не получили широкого распространения.

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

Другие реализации

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

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

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

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

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

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

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

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

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

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

Язык

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

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

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

"Привет, мир"

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

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

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

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

Единицы длины

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

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

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

0 0 moveto 0 113.385827 linto штрих

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

/см {72 мул 2.54 div} def               % 1 дюйм = 2,54 см точно 0 0 двигаться 0 4 см Lineto Инсульт

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

Программного обеспечения

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

Смотрите также

Рекомендации

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

дальнейшее чтение

внешняя ссылка