PostScript (рус. постскрипт) — язык описания страниц, в основном используемый в настольных издательских системах.
PostScript | |
---|---|
Класс языка | мультипарадигменный, стековый, процедурный |
Появился в | 1982 |
Автор | Джон Уорнок, Чарльз Гешке |
Разработчик | Adobe |
Расширение файлов | .ps |
Выпуск | PostScript 3 (1997) |
Система типов | строгая, динамическая |
Основные реализации | Adobe PostScript, TrueImage, Ghostscript, InterPress |
Испытал влияние | Forth |
Повлиял на | PDF, Encapsulated PostScript |
Идеология
PostScript был разработан Джоном Уорноком и Чарльзом Гешке из Adobe Systems в начале 1980-х годов. Исходно PostScript использовался как ядро механизма печати компьютеров Apple, но вскоре стал широко распространенным для большинства компьютерных систем. Интерпретаторы PostScript (в виде программных или аппаратных компонентов) для печати документов присутствуют практически во всех современных компьютерных системах.
В PostScript используется модель изображения текста (или рисунков) на чистой странице. Когда страница готова, она выводится на печать и начинается «прорисовка» изображения очередной страницы. Это есть ни что иное, как метод компиляции. Каждый документ PostScript обычно представляет собой программу, которая печатает на принтере (или отображает на экране монитора) следующие друг за другом страницы.
История
Концепция языка PostScript была заложена в 1976 году Джоном Уорноком, сотрудником [англ.]. Его коллега Джон Гэфни (англ. John Gaffney), занимавшийся тогда интерпретатором для большой базы данных трёхмерной графики Нью-Йоркской гавани, создал язык «Design System» (очень похожий на Forth). Позже Джон Уорнок перешёл в исследовательский центр Xerox PARC в Пало-Альто и в 1978 году вместе с [англ.] создал на базе Design System новую систему JaM (John and Martin), использовавшуюся в исследованиях печати и позже развившуюся в [англ.] — протокол печати Xerox.
В 1982 году Джон Уорнок уволился из Xerox и вместе с Чаком Гешке основал Adobe Systems. Вначале их целью было создание специализированной рабочей станции для печати, которая должна была называться PostScript, но вскоре они поняли, что лучше сконцентрировать усилия на разработке средств для управления принтерами сторонних производителей.
В 1984 году увидел свет PostScript (позже к названию было добавлено Level 1, чтобы отличать его от Level 2). PostScript имел ряд преимуществ перед другими системами того времени:
- платформонезависимость. Один и тот же файл мог печататься как на лазерном принтере, выдававшем тогда 300 dpi, так и на фотонаборном устройстве с 2400 dpi с наилучшим качеством в каждом случае;
- любой производитель мог получить лицензию на интерпретатор PostScript и использовать PostScript со своим устройством;
- спецификации PostScript были общедоступны, таким образом, любой разработчик мог писать программы, поддерживающие PostScript.
Adobe рисковала, выпуская PostScript, и, возможно, ей не удалось бы убедить рынок в необходимости такого языка, если бы не Стив Джобс из Apple Computer. В 1985 году продажи компьютеров Macintosh начали падать, и Apple нужен был «killer app» — нечто, что мог бы только её компьютер. Стив Джобс инвестировал 2,5 млн $ в Adobe, которая создала PostScript-контроллер для принтера Apple LaserWriter, и в Aldus, создавшую программу PageMaker, использовавшую все возможности Macintosh и LaserWriter. Появившаяся тогда возможность допечатной подготовки на компьютере спасла Apple и превратила Adobe и Aldus в крупные компании. Другие производители фотонаборной аппаратуры, начиная с , оценили PostScript и вскоре оснастили свою фотонаборную аппаратуру интерпретаторами PostScript. PostScript стал стандартом в области допечатной подготовки.
В 1991 Adobe выпустила следующую ревизию PostScript — PostScript Level 2. Это была значительная переработка, давно ожидавшаяся издательским сообществом. Основными улучшениями были:
- увеличенная скорость и надёжность (в основном это коснулось управления памятью);
- поддержка цветоделения в самом контроллере;
- распаковка сжатых изображений в самом контроллере (JPEG и CCITT group 4);
- поддержка больших наборов шрифтов (для азиатских стран);
- кэширование шрифтов и изображений;
- улучшенные драйверы;
- улучшенные алгоритмы печати изображения (Accurate Screening).
Adobe совершила ошибку, обнародовав спецификации PostScript Level 2 до начала работ по его аппаратной реализации. Конкуренты неожиданно вышли на рынок с эмуляторами PostScript Level 2 раньше самой Adobe. В результате потребовалось очень много времени, прежде чем приложения начали использовать все новые функции PostScript level 2.
В 1998 году Adobe ввела новый стандарт PostScript 3. Изменения по сравнению с Level 2 незначительны. Это можно понять, учитывая, что множество приложений до сих пор не может обеспечить полную поддержку PostScript Level 2. Основные преимущества PostScript 3:
- поддержка 4096 уровней на один цвет (12-бит на цвет, до того было 256 оттенков — 8 бит на цвет);
- поддержка PDF (контроллеры PS Level 3 могут выводить PDF наряду с файлами PS Level 2);
- расширенная поддержка цветоделения (контроллеры PS 3 могут производить цветоделение изображений, заданных в оттенках серого или в шести цветах);
- добавлена интернет-функциональность (Web-ready printing), пока что никто из OEM-партнёров Adobe не реализовал её.
Область применения
Подобно плоттерам, PostScript предоставляет возможность вывода высококачественной векторной графики и единый язык управления, который может быть использован любым производителем принтеров. Подобно матричным принтерам, PostScript предлагает удобные возможности по печати растровой графики и текста. В отличие от тех и других, PostScript может совмещать все эти типы вывода на одной странице, давая намного больше гибкости, чем до этого имел любой принтер или плоттер.
PostScript — больше, чем типичный язык управления принтером, он является полнофункциональным языком программирования. Многие прикладные программы могут преобразовать документ в PostScript-программу, при выполнении которой будет получен начальный документ. Эта программа может быть послана непосредственно на принтер с поддержкой PostScript или преобразована интерпретатором PostScript в другой формат (для принтеров без поддержки PostScript), или результат её выполнения интерпретатором может быть показан на экране. Так как исходная PostScript-программа одна и та же, PostScript называется независимым от устройства.
Большинство высокопроизводительных принтеров и плоттеров имеют встроенный интерпретатор языка PostScript. В то же время, простые принтеры домашнего класса поддерживают только элементарные графические операции, поэтому задача создания растрового изображения возлагается на центральный процессор. Существуют интерпретаторы языка PostScript для различных операционных систем, наиболее известный из них — свободная программа Ghostscript.
Имеется коммерческая версия системы ТеХ — BaKoMa TeX, написанная советским и российским программистом В. Малышевым полностью на PostScript.
Язык
PostScript — полнофункциональный тьюринг-полный язык программирования. Хотя программы на PostScript и создаются в основном не людьми, а другими программами, в принципе ничто не мешает писать на нём программы для обсчёта графики, реализации численных методов решения математических задач и т. п.
PostScript — интерпретируемый стековый язык, похожий на Форт. Синтаксис языка использует обратную польскую нотацию, что делает ненужным использование скобок, однако требует некоторой практики для чтения текста программы из-за необходимости держать в голове содержимое стека. Большинство операторов берёт операнды из стека и помещают результат вычислений в стек. Литералы (строки и числа) помещают свою копию в стек.
В PostScript для рисования используется двумерная прямоугольная система координат, начало которой совпадает с левым нижним углом страницы; ось X по умолчанию направлена горизонтально (то есть по ширине страницы), ось Y — вертикально. Единицей измерения линейных координат служит типографский пункт. С помощью операторов языка [6, pp. 517—518] начало системы координат может быть перенесено в любую точку (оператор translate
), а сама система — повернута на произвольный угол в плоскости страницы (оператор rotate
); масштаб по каждой из двух осей с помощью оператора scale
также может быть изменен. Например, «зеркальный» вывод изображения на плёнку (т. н. «Emulsion down») в PostScript-принтерах осуществляется при помощи одного единственного оператора scale
, задающего отрицательный масштаб по одной из осей системы координат: например, -1.0 1.0 scale
.
PostScript имеет черты метафайла, совмещая поддержку как векторных, так и растровых изображений. Шрифты в PostScript только векторные. Немного особняком стоят т. н. Type3-шрифты, в которых для рисования глифов (процедура /BuildGlyph
) может быть использована любая процедура, сформулированная в терминах языка PostScript [6, pp. 337—342]. После выхода SP4 для Windows NT 4.0 в 1998 году (см. также http://support.microsoft.com/gp/lifesupsps ) при установленном в системе Adobe Type Manager 4.0 и драйвере AdobePS 5 все шрифты в не-roman кодировке, в частности, кириллица, выгружались в PostScript-файл в виде Type3-шрифтов, где каждый глиф был представлен в виде растрового изображения соответствующего разрешения. Выгрузка шрифта в виде растровых изображений создала много проблем при подготовке к выводу на фотонабор и допечатной подготовке вообще. Эта ошибка была исправлена в AdobePS 5.1 и Adobe Type Manager 4.1, которые затем вошли в дистрибутив Windows 2000.
Структура документа
Структура файла 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-программы заключается в вычислении для каждого пиксела устройства вывода одного (для монохромного) или нескольких (например четырёх для CMYK-устройства или шести для ) значений параметра (-ов) в диапазоне от 0 до 1,0. Вычисленное значение параметра (-ов) используется в качестве аргумента ещё одной важной функции — transfer function (русскоязычный синоним — отображение). По умолчанию в подавляющем большинстве случаев эта функция представляет собой простейшую функцию y(x)=x и её значение тождественно равно значению аргумента. Однако в ряде случаев — например для компенсации растискивания используются достаточно сложные нелинейные зависимости y(x), задаваемые кусочной либо табличной аппроксимацией. Кусочно-линейная аппроксимация transfer function используется например в EPS- и PS-файлах Adobe Photoshop — для аппроксимации используется разбивка области определения [0;1,0] на сорок участков с шагом 0,025 (2,5 % ); на каждом из сорока участков transfer function имеет вид y(x)=b·x+a. Transfer function вида y(x)=1-x (в терминах PostScript language {1 sub neg} settransfer
) обращает изображение, делая из него негатив — именно таким образом печатают негатив PostScript-принтеры.
Для монохромных устройств — например для фотонабора, решение о закрашивании (засветке) пикселя может приниматься в результате сравнения вычисленного для данного пиксела значения transfer function и значения т. н. Spot-функции либо двумерного массива Threshold array: в случае, если значение transfer function больше значения Spot-функции или элемента Threshold array для этого пиксела последний закрашивается (засвечивается).
Специальный подбор transfer function и Spot-функции или Threshold array позволяет получить отношение числа закрашенных и незакрашенных пикселей устройства вывода для каждого пиксела исходного (растрируемого) изображения таким, что на оттиске (отпечатке) средняя яркость соответствующего участка изображения почти пропорциональна значению вычисленного параметра (см. выше).
Подобным образом формируются точки различного размера, из которых состоит полутоновое изображение на типографских оттисках: в газетах, журналах, книгах.
Пример программы
%!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, его обращение со шрифтами. Система шрифтов использует графические примитивы PS для рисования глифов кривыми линиями, которые затем могут быть отображены с любым разрешением. Ряд типографских вопросов возникает при этом подходе.
Одна из проблем — что шрифты не масштабируются линейно при небольших размерах — решается включением хинтинга. В то время, когда технология включения хинтов в шрифтах строго охранялась, «хинтованные» шрифты были закодированы и сжаты в то, что Adobe называла фонт Type 1 (который известен также как, PS1, T1 или Adobe Type 1). Type 1 был скорее средством для хранения исключительно информации об очерчивании символов, чем полноценным языком (PDF подобен в этом отношении). Adobe затем начала продавать лицензии на технологию Type 1 тем, кто хотел добавлять хинты к своим шрифтам. Те, кто не приобрёл лицензию на эту технологию, остались с шрифтом Type 3. Шрифты Type 3 позволяли применение всей сложности языка PostScript, но без стандартного подхода к хинтам.
Шрифт Type 2, который предназначен для использования с форматом Compact Font (CFF), был реализован, чтобы уменьшить общий размер файла шрифта. Позже он стал основой для обращения с OpenType-шрифтами.
Для того, чтобы конкурировать с системой Adobe, Apple разработал в 1991 году свои собственные TrueType-системы. Сразу после объявления TrueType Adobe опубликовала спецификации для формата Type 1. С тех пор появилось много бесплатных шрифтов Type 1. Например, шрифты, используемые системой верстки TeX, доступны в этом формате.
В конце 1990-х годов Adobe присоединилась к Microsoft в разработке OpenType. По существу, это было объединение и расширение форматов Type 1 и TrueType. При печати на выходе PostScript-устройства избыточные части OpenType-шрифта опускаются, и то, что посылается драйверу печатающего устройства, не отличается от того, что выдается TrueType- или Type 1-шрифтами.
CID-индексированные шрифты
Формат CID-индексированных (сокращение для Character Identified) шрифтов был разработан, чтобы решить проблему адресации глифов в иероглифических языках с очень большим числом символов (китайский, корейский, японский). Этот формат может быть использован с форматом Type 1 для стандартных CID-индексированных шрифтов или Type 2 для CID-индексированных OpenType шрифтов.
Каждый глиф элемента в коллекции символов идентифицируется уникальным индексом символа (CID) в этой кодировке, который может не совпадать с кодом соответствующего символа, например, в Unicode.
Коллекции символов уникально называются «регистри», «упорядочением» и «дополнением», например «Adobe-Japan1-6». Регистри обозначает разработчика (например, Adobe). Упорядочение раскрывает цель набора символов (например, «Japan1»). Дополнительный номер (например, 6) указывает часто на объем коллекции. Например, коллекция Adobe-Japan1-0 составляет 8284 глифа, а Adobe-Japan1-6 — 23058 глифов.
Шрифты с ключом CID могут быть сделаны без ссылки на коллекцию символов, используя кодировку «identity», такую как Identity-H (для горизонтальной записи) или Identity-V (для вертикальных). Такие шрифты могут иметь уникальный набор символов, и в этом случае номер CID глифа не является информативным; обычно вместо этого используется кодировка Unicode, потенциально с дополнительной информацией.
Технология Adobe ClearScan создаёт пользовательские шрифты Type1-CID для соответствия визуальному оформлению отсканированного документа после оптического распознавания символов (OCR). ClearScan (в Acrobat 9) не заменяет шрифты на системные шрифты или на Type1-MM (как в Acrobat 8 и более ранних версиях), а использует эти вновь созданные пользовательские шрифты. Пользовательские шрифты встроены (embedded) в файл PDF.
Тенденции и перспективы
Помимо PostScript, на рынке лазерных принтеров широкое распространение получил язык управления принтером PCL, разработанный Hewlett-Packard. PCL изначально нацеливался на иные задачи, чем PostScript (управление принтером, а не описание страницы), и не может обеспечивать переносимость. Однако для офисного использования он в ряде случаев более удобен. PCL использует стандартные Windows-шрифты TrueType (в отличие от PostScript). Кроме того, последняя его версия (PCL6) разрабатывалась HP в тесном сотрудничестве с Microsoft и потому обеспечивает ускоренный возврат ответа в приложение, быструю печать сложных графических изображений, улучшенное качество печати и повышенную точность при выводе документов.
Кроме того, язык PostScript предполагает лицензирование и выплату лицензионных отчислений Adobe с каждого контроллера RIP (Raster Image Processor), в то время как язык PCL может использоваться сторонними производителями бесплатно. Поэтому лицензированные RIP PostScript 3 для плоттеров производства HP стоят около 500 долларов, в то время как нелицензированные контроллеры — «эмуляция PS2» производства OKI стоят 30—70 долларов.
Практически все лазерные принтеры 1990-х годов поддерживали PostScript в качестве основного языка; начиная с 2000-х годов множество лазерных принтеров класса SOHO не оснащается поддержкой PostScript с целью удешевления. Таким образом, PostScript вытесняется из офисов языком PCL, оставаясь, тем не менее, практически безальтернативным стандартом в области допечатной подготовки.
Примечания
- Evan Danaher. Life in PostScript (англ.). — Игра «Жизнь» на языке PostScript (GPL). — «англ. I learned that Postscript is a real language, not just for graphics. So I spent a bit of time learning it, and wanted to do something interesting in it. So of course, the obvious choice was John Conway's game of life.». Дата обращения: 9 апреля 2012. Архивировано 15 мая 2012 года.
Литература
- Роберт Шимонски. Освой самостоятельно Unix. 10 минут на урок = Sams Teach Yourself Unix in 10 Minutes. — М.: , 2006. — С. 272. — .
- С. Немнюгин, М. Чаунин, А. Комолкин. Эффективная работа в UNIX. СПб.: «Питер», 2001.
- Романовский И. В., Столяр С. Е. . Учебное пособие. — СПб.: «Информатизация образования», 2002. — 35 с.
- Glenn C. Reid. , Addison-Wesley, 1990.
Ссылки
- Язык программирования PostScript
- The history of PostScript
- PostScript Language Tutorial and Cookbook
- Языки PCL и PostScript от 6 января 2012 на Wayback Machine
- Halftones and Screens. Adobe Developers Association. 9 October 1997 (недоступная ссылка)
Википедия, чтение, книга, библиотека, поиск, нажмите, истории, книги, статьи, wikipedia, учить, информация, история, скачать, скачать бесплатно, mp3, видео, mp4, 3gp, jpg, jpeg, gif, png, картинка, музыка, песня, фильм, игра, игры, мобильный, телефон, Android, iOS, apple, мобильный телефон, Samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Сеть, компьютер
PostScript rus postskript yazyk opisaniya stranic v osnovnom ispolzuemyj v nastolnyh izdatelskih sistemah PostScriptKlass yazyka multiparadigmennyj stekovyj procedurnyjPoyavilsya v 1982Avtor Dzhon Uornok Charlz GeshkeRazrabotchik AdobeRasshirenie fajlov psVypusk PostScript 3 1997 Sistema tipov strogaya dinamicheskayaOsnovnye realizacii Adobe PostScript TrueImage Ghostscript InterPressIspytal vliyanie ForthPovliyal na PDF Encapsulated PostScriptIdeologiyaPostScript byl razrabotan Dzhonom Uornokom i Charlzom Geshke iz Adobe Systems v nachale 1980 h godov Ishodno PostScript ispolzovalsya kak yadro mehanizma pechati kompyuterov Apple no vskore stal shiroko rasprostranennym dlya bolshinstva kompyuternyh sistem Interpretatory PostScript v vide programmnyh ili apparatnyh komponentov dlya pechati dokumentov prisutstvuyut prakticheski vo vseh sovremennyh kompyuternyh sistemah V PostScript ispolzuetsya model izobrazheniya teksta ili risunkov na chistoj stranice Kogda stranica gotova ona vyvoditsya na pechat i nachinaetsya prorisovka izobrazheniya ocherednoj stranicy Eto est ni chto inoe kak metod kompilyacii Kazhdyj dokument PostScript obychno predstavlyaet soboj programmu kotoraya pechataet na printere ili otobrazhaet na ekrane monitora sleduyushie drug za drugom stranicy IstoriyaKoncepciya yazyka PostScript byla zalozhena v 1976 godu Dzhonom Uornokom sotrudnikom angl Ego kollega Dzhon Gefni angl John Gaffney zanimavshijsya togda interpretatorom dlya bolshoj bazy dannyh tryohmernoj grafiki Nyu Jorkskoj gavani sozdal yazyk Design System ochen pohozhij na Forth Pozzhe Dzhon Uornok pereshyol v issledovatelskij centr Xerox PARC v Palo Alto i v 1978 godu vmeste s angl sozdal na baze Design System novuyu sistemu JaM John and Martin ispolzovavshuyusya v issledovaniyah pechati i pozzhe razvivshuyusya v angl protokol pechati Xerox V 1982 godu Dzhon Uornok uvolilsya iz Xerox i vmeste s Chakom Geshke osnoval Adobe Systems Vnachale ih celyu bylo sozdanie specializirovannoj rabochej stancii dlya pechati kotoraya dolzhna byla nazyvatsya PostScript no vskore oni ponyali chto luchshe skoncentrirovat usiliya na razrabotke sredstv dlya upravleniya printerami storonnih proizvoditelej V 1984 godu uvidel svet PostScript pozzhe k nazvaniyu bylo dobavleno Level 1 chtoby otlichat ego ot Level 2 PostScript imel ryad preimushestv pered drugimi sistemami togo vremeni platformonezavisimost Odin i tot zhe fajl mog pechatatsya kak na lazernom printere vydavavshem togda 300 dpi tak i na fotonabornom ustrojstve s 2400 dpi s nailuchshim kachestvom v kazhdom sluchae lyuboj proizvoditel mog poluchit licenziyu na interpretator PostScript i ispolzovat PostScript so svoim ustrojstvom specifikacii PostScript byli obshedostupny takim obrazom lyuboj razrabotchik mog pisat programmy podderzhivayushie PostScript Adobe riskovala vypuskaya PostScript i vozmozhno ej ne udalos by ubedit rynok v neobhodimosti takogo yazyka esli by ne Stiv Dzhobs iz Apple Computer V 1985 godu prodazhi kompyuterov Macintosh nachali padat i Apple nuzhen byl killer app nechto chto mog by tolko eyo kompyuter Stiv Dzhobs investiroval 2 5 mln v Adobe kotoraya sozdala PostScript kontroller dlya printera Apple LaserWriter i v Aldus sozdavshuyu programmu PageMaker ispolzovavshuyu vse vozmozhnosti Macintosh i LaserWriter Poyavivshayasya togda vozmozhnost dopechatnoj podgotovki na kompyutere spasla Apple i prevratila Adobe i Aldus v krupnye kompanii Drugie proizvoditeli fotonabornoj apparatury nachinaya s ocenili PostScript i vskore osnastili svoyu fotonabornuyu apparaturu interpretatorami PostScript PostScript stal standartom v oblasti dopechatnoj podgotovki V 1991 Adobe vypustila sleduyushuyu reviziyu PostScript PostScript Level 2 Eto byla znachitelnaya pererabotka davno ozhidavshayasya izdatelskim soobshestvom Osnovnymi uluchsheniyami byli uvelichennaya skorost i nadyozhnost v osnovnom eto kosnulos upravleniya pamyatyu podderzhka cvetodeleniya v samom kontrollere raspakovka szhatyh izobrazhenij v samom kontrollere JPEG i CCITT group 4 podderzhka bolshih naborov shriftov dlya aziatskih stran keshirovanie shriftov i izobrazhenij uluchshennye drajvery uluchshennye algoritmy pechati izobrazheniya Accurate Screening Adobe sovershila oshibku obnarodovav specifikacii PostScript Level 2 do nachala rabot po ego apparatnoj realizacii Konkurenty neozhidanno vyshli na rynok s emulyatorami PostScript Level 2 ranshe samoj Adobe V rezultate potrebovalos ochen mnogo vremeni prezhde chem prilozheniya nachali ispolzovat vse novye funkcii PostScript level 2 V 1998 godu Adobe vvela novyj standart PostScript 3 Izmeneniya po sravneniyu s Level 2 neznachitelny Eto mozhno ponyat uchityvaya chto mnozhestvo prilozhenij do sih por ne mozhet obespechit polnuyu podderzhku PostScript Level 2 Osnovnye preimushestva PostScript 3 podderzhka 4096 urovnej na odin cvet 12 bit na cvet do togo bylo 256 ottenkov 8 bit na cvet podderzhka PDF kontrollery PS Level 3 mogut vyvodit PDF naryadu s fajlami PS Level 2 rasshirennaya podderzhka cvetodeleniya kontrollery PS 3 mogut proizvodit cvetodelenie izobrazhenij zadannyh v ottenkah serogo ili v shesti cvetah dobavlena internet funkcionalnost Web ready printing poka chto nikto iz OEM partnyorov Adobe ne realizoval eyo Oblast primeneniyaPodobno plotteram PostScript predostavlyaet vozmozhnost vyvoda vysokokachestvennoj vektornoj grafiki i edinyj yazyk upravleniya kotoryj mozhet byt ispolzovan lyubym proizvoditelem printerov Podobno matrichnym printeram PostScript predlagaet udobnye vozmozhnosti po pechati rastrovoj grafiki i teksta V otlichie ot teh i drugih PostScript mozhet sovmeshat vse eti tipy vyvoda na odnoj stranice davaya namnogo bolshe gibkosti chem do etogo imel lyuboj printer ili plotter PostScript bolshe chem tipichnyj yazyk upravleniya printerom on yavlyaetsya polnofunkcionalnym yazykom programmirovaniya Mnogie prikladnye programmy mogut preobrazovat dokument v PostScript programmu pri vypolnenii kotoroj budet poluchen nachalnyj dokument Eta programma mozhet byt poslana neposredstvenno na printer s podderzhkoj PostScript ili preobrazovana interpretatorom PostScript v drugoj format dlya printerov bez podderzhki PostScript ili rezultat eyo vypolneniya interpretatorom mozhet byt pokazan na ekrane Tak kak ishodnaya PostScript programma odna i ta zhe PostScript nazyvaetsya nezavisimym ot ustrojstva Bolshinstvo vysokoproizvoditelnyh printerov i plotterov imeyut vstroennyj interpretator yazyka PostScript V to zhe vremya prostye printery domashnego klassa podderzhivayut tolko elementarnye graficheskie operacii poetomu zadacha sozdaniya rastrovogo izobrazheniya vozlagaetsya na centralnyj processor Sushestvuyut interpretatory yazyka PostScript dlya razlichnyh operacionnyh sistem naibolee izvestnyj iz nih svobodnaya programma Ghostscript Imeetsya kommercheskaya versiya sistemy TeH BaKoMa TeX napisannaya sovetskim i rossijskim programmistom V Malyshevym polnostyu na PostScript YazykPostScript polnofunkcionalnyj tyuring polnyj yazyk programmirovaniya Hotya programmy na PostScript i sozdayutsya v osnovnom ne lyudmi a drugimi programmami v principe nichto ne meshaet pisat na nyom programmy dlya obschyota grafiki realizacii chislennyh metodov resheniya matematicheskih zadach i t p PostScript interpretiruemyj stekovyj yazyk pohozhij na Fort Sintaksis yazyka ispolzuet obratnuyu polskuyu notaciyu chto delaet nenuzhnym ispolzovanie skobok odnako trebuet nekotoroj praktiki dlya chteniya teksta programmy iz za neobhodimosti derzhat v golove soderzhimoe steka Bolshinstvo operatorov beryot operandy iz steka i pomeshayut rezultat vychislenij v stek Literaly stroki i chisla pomeshayut svoyu kopiyu v stek V PostScript dlya risovaniya ispolzuetsya dvumernaya pryamougolnaya sistema koordinat nachalo kotoroj sovpadaet s levym nizhnim uglom stranicy os X po umolchaniyu napravlena gorizontalno to est po shirine stranicy os Y vertikalno Edinicej izmereniya linejnyh koordinat sluzhit tipografskij punkt S pomoshyu operatorov yazyka 6 pp 517 518 nachalo sistemy koordinat mozhet byt pereneseno v lyubuyu tochku operator translate a sama sistema povernuta na proizvolnyj ugol v ploskosti stranicy operator rotate masshtab po kazhdoj iz dvuh osej s pomoshyu operatora scale takzhe mozhet byt izmenen Naprimer zerkalnyj vyvod izobrazheniya na plyonku t n Emulsion down v PostScript printerah osushestvlyaetsya pri pomoshi odnogo edinstvennogo operatora scale zadayushego otricatelnyj masshtab po odnoj iz osej sistemy koordinat naprimer 1 0 1 0 scale PostScript imeet cherty metafajla sovmeshaya podderzhku kak vektornyh tak i rastrovyh izobrazhenij Shrifty v PostScript tolko vektornye Nemnogo osobnyakom stoyat t n Type3 shrifty v kotoryh dlya risovaniya glifov procedura BuildGlyph mozhet byt ispolzovana lyubaya procedura sformulirovannaya v terminah yazyka PostScript 6 pp 337 342 Posle vyhoda SP4 dlya Windows NT 4 0 v 1998 godu sm takzhe http support microsoft com gp lifesupsps pri ustanovlennom v sisteme Adobe Type Manager 4 0 i drajvere AdobePS 5 vse shrifty v ne roman kodirovke v chastnosti kirillica vygruzhalis v PostScript fajl v vide Type3 shriftov gde kazhdyj glif byl predstavlen v vide rastrovogo izobrazheniya sootvetstvuyushego razresheniya Vygruzka shrifta v vide rastrovyh izobrazhenij sozdala mnogo problem pri podgotovke k vyvodu na fotonabor i dopechatnoj podgotovke voobshe Eta oshibka byla ispravlena v AdobePS 5 1 i Adobe Type Manager 4 1 kotorye zatem voshli v distributiv Windows 2000 Struktura dokumenta Struktura fajla PostScript formiruetsya strukturnymi kommentariyami Strukturnye kommentarii nachinayutsya s posledovatelnosti simvolov v nachale stroki Fajl PostScript sostoit iz chetyryoh chastej zagolovka prologa tela i epiloga Zagolovok nachinaetsya strokoj PS Adobe N M gde N M versiya specifikacii dalee idut strukturnye kommentarii s obshimi svojstvami dokumenta i zakanchivaetsya zagolovok strokoj 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 V prologe obychno soderzhatsya opisaniya podprogramm i dannye neobhodimye dlya pechati dokumenta naprimer procedury i shrifty Prolog zakanchivaetsya kommentariem EndProlog V tele programmy soderzhatsya komandy otvechayushie za otrisovku kazhdoj stranicy predvaryaemye strokoj Page lt metka gt lt nomer gt gde lt metka gt metka stranicy kotoraya ne vyvoditsya na pechat i lt nomer gt poryadkovyj nomer stranicy v fajle naprimer Page iii 3 Posle komand otrisovki vseh stranic idyot strukturnyj kommentarij Trailer posle chego nachinaetsya epilog V epiloge mozhno produblirovat kommentarii iz zagolovka eto realizovano na sluchaj esli v nachale vyvoda programme eshyo ne izvestno naprimer chislo stranic v etom sluchae vmesto chislovyh znachenij parametrov v zagolovke nado pisat atend Zakanchivaetsya fajl strokoj EOF Obzor elementov yazyka Steki V PostScript dlya hraneniya dannyh raznyh tipov ispolzuyutsya chetyre steka stek operandov stek graficheskih kontekstov stek ispolneniya stek slovarej Tipy dannyh Osnovnye tipy dannyh yazyka PostScript celoe chislo so znakom veshestvennoe chislo logicheskoe vyrazhenie true ili false stroka simvolov massiv procedura slovar imya Operatory Operatory v PostScript poluchayut operandy parametry vynimaya ih iz steka i zapisyvayut rezultaty dejstvij esli oni est takzhe v stek Takoj stil programmirovaniya pri kotorom operandy zadayutsya do operacii nad nimi operatora nazyvaetsya postfiksnoj notaciej Naprimer dlya slozheniya dvuh zadannyh chisel neobhodimo vnachale pomestit ih v vershinu steka operandov zatem vypolnit komandu add kotoraya izvlechyot iz steka dva elementa pomeshyonnye poslednimi to est zadannye chisla slozhit ih i zapishet rezultat v stek otkuda on smozhet byt izvlechyon drugoj operaciej v kachestve operanda Eto zapisyvaetsya tak 4 5 add Operatory PostScript mozhno razdelit na neskolko grupp Eto operatory dlya raboty s soderzhimym steka nezavisimo ot tipa arifmeticheskie operacii operatory raboty s massivami raboty so slovaryami raboty so strokami sravneniya upravleniya potokom komand raboty s tipom argumentov i preobrazovaniya dostupa i raboty s fajlami raboty s virtualnoj pamyatyu graficheskogo sostoyaniya i drugie Kratkij obzor mehanizma risovaniya izobrazheniya Process risovaniya rastrirovaniya pri vypolnenii interpretacii PostScript programmy zaklyuchaetsya v vychislenii dlya kazhdogo piksela ustrojstva vyvoda odnogo dlya monohromnogo ili neskolkih naprimer chetyryoh dlya CMYK ustrojstva ili shesti dlya znachenij parametra ov v diapazone ot 0 do 1 0 Vychislennoe znachenie parametra ov ispolzuetsya v kachestve argumenta eshyo odnoj vazhnoj funkcii transfer function russkoyazychnyj sinonim otobrazhenie Po umolchaniyu v podavlyayushem bolshinstve sluchaev eta funkciya predstavlyaet soboj prostejshuyu funkciyu y x x i eyo znachenie tozhdestvenno ravno znacheniyu argumenta Odnako v ryade sluchaev naprimer dlya kompensacii rastiskivaniya ispolzuyutsya dostatochno slozhnye nelinejnye zavisimosti y x zadavaemye kusochnoj libo tablichnoj approksimaciej Kusochno linejnaya approksimaciya transfer function ispolzuetsya naprimer v EPS i PS fajlah Adobe Photoshop dlya approksimacii ispolzuetsya razbivka oblasti opredeleniya 0 1 0 na sorok uchastkov s shagom 0 025 2 5 na kazhdom iz soroka uchastkov transfer function imeet vid y x b x a Transfer function vida y x 1 x v terminah PostScript language 1 sub neg settransfer obrashaet izobrazhenie delaya iz nego negativ imenno takim obrazom pechatayut negativ PostScript printery Dlya monohromnyh ustrojstv naprimer dlya fotonabora reshenie o zakrashivanii zasvetke pikselya mozhet prinimatsya v rezultate sravneniya vychislennogo dlya dannogo piksela znacheniya transfer function i znacheniya t n Spot funkcii libo dvumernogo massiva Threshold array v sluchae esli znachenie transfer function bolshe znacheniya Spot funkcii ili elementa Threshold array dlya etogo piksela poslednij zakrashivaetsya zasvechivaetsya Specialnyj podbor transfer function i Spot funkcii ili Threshold array pozvolyaet poluchit otnoshenie chisla zakrashennyh i nezakrashennyh pikselej ustrojstva vyvoda dlya kazhdogo piksela ishodnogo rastriruemogo izobrazheniya takim chto na ottiske otpechatke srednyaya yarkost sootvetstvuyushego uchastka izobrazheniya pochti proporcionalna znacheniyu vychislennogo parametra sm vyshe Podobnym obrazom formiruyutsya tochki razlichnogo razmera iz kotoryh sostoit polutonovoe izobrazhenie na tipografskih ottiskah v gazetah zhurnalah knigah Primer programmy PS Adobe 1 0 Po umolchaniyu postskript ispolzuet edinicu izmereniya 1 punkt 1 72 dyujma a nam nravyatsya millimetry 72 25 4 div 1 mm 72 25 4 punktov dup dublirovat znachenie na vershine steka scale rastyanut v eto kolichestvo raz po obeim koordinatam 100 100 translate ustanovit nachalo koordinat v 100 mm 100 mm Times Roman findfont vzyat shrift Times Roman 10 scalefont rastyanut do razmera 10 u nas mm setfont ustanovit vybrannyj shrift 0 30 330 cikl dlya uglov ot 0 do 330 s shagom 30 gsave zapomnit tekushee preobrazovanie koordinat rotate povernut sistemu koordinat ugol v gradusah beryom s vershiny steka 15 0 moveto perejti v tochku 15 mm 0 mm Wikipedia show napisat slovo tekushim shriftom grestore vernut preobrazovanie koordinat for konec cikla for showpage vyvesti stranicu Vyvod programmy Vyvod programmyObrabotka shriftovPochti stol zhe slozhno kak sam PostScript ego obrashenie so shriftami Sistema shriftov ispolzuet graficheskie primitivy PS dlya risovaniya glifov krivymi liniyami kotorye zatem mogut byt otobrazheny s lyubym razresheniem Ryad tipografskih voprosov voznikaet pri etom podhode Odna iz problem chto shrifty ne masshtabiruyutsya linejno pri nebolshih razmerah reshaetsya vklyucheniem hintinga V to vremya kogda tehnologiya vklyucheniya hintov v shriftah strogo ohranyalas hintovannye shrifty byli zakodirovany i szhaty v to chto Adobe nazyvala font Type 1 kotoryj izvesten takzhe kak PS1 T1 ili Adobe Type 1 Type 1 byl skoree sredstvom dlya hraneniya isklyuchitelno informacii ob ocherchivanii simvolov chem polnocennym yazykom PDF podoben v etom otnoshenii Adobe zatem nachala prodavat licenzii na tehnologiyu Type 1 tem kto hotel dobavlyat hinty k svoim shriftam Te kto ne priobryol licenziyu na etu tehnologiyu ostalis s shriftom Type 3 Shrifty Type 3 pozvolyali primenenie vsej slozhnosti yazyka PostScript no bez standartnogo podhoda k hintam Shrift Type 2 kotoryj prednaznachen dlya ispolzovaniya s formatom Compact Font CFF byl realizovan chtoby umenshit obshij razmer fajla shrifta Pozzhe on stal osnovoj dlya obrasheniya s OpenType shriftami Dlya togo chtoby konkurirovat s sistemoj Adobe Apple razrabotal v 1991 godu svoi sobstvennye TrueType sistemy Srazu posle obyavleniya TrueType Adobe opublikovala specifikacii dlya formata Type 1 S teh por poyavilos mnogo besplatnyh shriftov Type 1 Naprimer shrifty ispolzuemye sistemoj verstki TeX dostupny v etom formate V konce 1990 h godov Adobe prisoedinilas k Microsoft v razrabotke OpenType Po sushestvu eto bylo obedinenie i rasshirenie formatov Type 1 i TrueType Pri pechati na vyhode PostScript ustrojstva izbytochnye chasti OpenType shrifta opuskayutsya i to chto posylaetsya drajveru pechatayushego ustrojstva ne otlichaetsya ot togo chto vydaetsya TrueType ili Type 1 shriftami CID indeksirovannye shrifty Format CID indeksirovannyh sokrashenie dlya Character Identified shriftov byl razrabotan chtoby reshit problemu adresacii glifov v ieroglificheskih yazykah s ochen bolshim chislom simvolov kitajskij korejskij yaponskij Etot format mozhet byt ispolzovan s formatom Type 1 dlya standartnyh CID indeksirovannyh shriftov ili Type 2 dlya CID indeksirovannyh OpenType shriftov Kazhdyj glif elementa v kollekcii simvolov identificiruetsya unikalnym indeksom simvola CID v etoj kodirovke kotoryj mozhet ne sovpadat s kodom sootvetstvuyushego simvola naprimer v Unicode Kollekcii simvolov unikalno nazyvayutsya registri uporyadocheniem i dopolneniem naprimer Adobe Japan1 6 Registri oboznachaet razrabotchika naprimer Adobe Uporyadochenie raskryvaet cel nabora simvolov naprimer Japan1 Dopolnitelnyj nomer naprimer 6 ukazyvaet chasto na obem kollekcii Naprimer kollekciya Adobe Japan1 0 sostavlyaet 8284 glifa a Adobe Japan1 6 23058 glifov Shrifty s klyuchom CID mogut byt sdelany bez ssylki na kollekciyu simvolov ispolzuya kodirovku identity takuyu kak Identity H dlya gorizontalnoj zapisi ili Identity V dlya vertikalnyh Takie shrifty mogut imet unikalnyj nabor simvolov i v etom sluchae nomer CID glifa ne yavlyaetsya informativnym obychno vmesto etogo ispolzuetsya kodirovka Unicode potencialno s dopolnitelnoj informaciej Tehnologiya Adobe ClearScan sozdayot polzovatelskie shrifty Type1 CID dlya sootvetstviya vizualnomu oformleniyu otskanirovannogo dokumenta posle opticheskogo raspoznavaniya simvolov OCR ClearScan v Acrobat 9 ne zamenyaet shrifty na sistemnye shrifty ili na Type1 MM kak v Acrobat 8 i bolee rannih versiyah a ispolzuet eti vnov sozdannye polzovatelskie shrifty Polzovatelskie shrifty vstroeny embedded v fajl PDF Tendencii i perspektivyPomimo PostScript na rynke lazernyh printerov shirokoe rasprostranenie poluchil yazyk upravleniya printerom PCL razrabotannyj Hewlett Packard PCL iznachalno nacelivalsya na inye zadachi chem PostScript upravlenie printerom a ne opisanie stranicy i ne mozhet obespechivat perenosimost Odnako dlya ofisnogo ispolzovaniya on v ryade sluchaev bolee udoben PCL ispolzuet standartnye Windows shrifty TrueType v otlichie ot PostScript Krome togo poslednyaya ego versiya PCL6 razrabatyvalas HP v tesnom sotrudnichestve s Microsoft i potomu obespechivaet uskorennyj vozvrat otveta v prilozhenie bystruyu pechat slozhnyh graficheskih izobrazhenij uluchshennoe kachestvo pechati i povyshennuyu tochnost pri vyvode dokumentov Krome togo yazyk PostScript predpolagaet licenzirovanie i vyplatu licenzionnyh otchislenij Adobe s kazhdogo kontrollera RIP Raster Image Processor v to vremya kak yazyk PCL mozhet ispolzovatsya storonnimi proizvoditelyami besplatno Poetomu licenzirovannye RIP PostScript 3 dlya plotterov proizvodstva HP stoyat okolo 500 dollarov v to vremya kak nelicenzirovannye kontrollery emulyaciya PS2 proizvodstva OKI stoyat 30 70 dollarov Prakticheski vse lazernye printery 1990 h godov podderzhivali PostScript v kachestve osnovnogo yazyka nachinaya s 2000 h godov mnozhestvo lazernyh printerov klassa SOHO ne osnashaetsya podderzhkoj PostScript s celyu udeshevleniya Takim obrazom PostScript vytesnyaetsya iz ofisov yazykom PCL ostavayas tem ne menee prakticheski bezalternativnym standartom v oblasti dopechatnoj podgotovki PrimechaniyaEvan Danaher Life in PostScript angl Igra Zhizn na yazyke PostScript GPL angl I learned that Postscript is a real language not just for graphics So I spent a bit of time learning it and wanted to do something interesting in it So of course the obvious choice was John Conway s game of life Data obrasheniya 9 aprelya 2012 Arhivirovano 15 maya 2012 goda LiteraturaRobert Shimonski Osvoj samostoyatelno Unix 10 minut na urok Sams Teach Yourself Unix in 10 Minutes M 2006 S 272 ISBN 0 672 32764 3 S Nemnyugin M Chaunin A Komolkin Effektivnaya rabota v UNIX SPb Piter 2001 ISBN 5 272 00197 4 Romanovskij I V Stolyar S E Uchebnoe posobie SPb Informatizaciya obrazovaniya 2002 35 s Glenn C Reid Addison Wesley 1990 SsylkiYazyk programmirovaniya PostScript The history of PostScript ISBN 0 201 37922 8 PostScript Language Tutorial and Cookbook Yazyki PCL i PostScript ot 6 yanvarya 2012 na Wayback Machine Halftones and Screens Adobe Developers Association 9 October 1997 nedostupnaya ssylka