Последнее обновление: 20 февраля 2025 года

Что такое PostScript?
PostScript (PS) — это язык описания страниц (PDL), разработанный компанией Adobe Systems в 1982 году. Он в первую очередь используется в настольных издательствах, печати и графическом дизайне для описания того, как текст и изображения должны отображаться на странице.

Объяснение PostScript (PS)
PostScript (PS) — это одновременно язык описания страниц (PDL) и язык программирования, который является динамически типизированным и стеково-ориентированным. Вот что это значит:
1. Что такое язык описания страниц (PDL)?
Язык описания страниц определяет, как графика и текст отображаются на печатной странице или экране. PostScript используется в принтерах, издательском программном обеспечении и цифровом наборе текста, чтобы точно отображать шрифты, изображения и макеты.
2. Что такое стеково-ориентированный язык программирования?
PostScript использует стек для обработки команд, следуя принципу последний пришел, первый вышел (LIFO). Например, чтобы сложить два числа в PostScript, их помещают в стек, а затем вызывают оператор для их обработки:
10 20 add
Это помещает 10
и 20
в стек, затем команда add
извлекает их и помещает результат (30
) обратно в стек.
3. Динамическая типизация
PostScript не требует явного определения типов. Переменные могут содержать различные типы (числа, строки, массивы и т.д.) без предопределенных типов.
4. Использование PostScript
PostScript в основном используется для настольной и электронной издательской деятельности, что означает помощь в создании и печати высококачественных документов с точным контролем над шрифтами, макетом и графикой.
5. Язык с Тюринговой полнотой
Будучи Тюринг-совершенным, PostScript может, теоретически, выполнить любое вычисление при наличии достаточного объема памяти и времени. Это значит, что его можно использовать для выполнения общих программных задач, а не только для печати.
6. История и развитие
- Разработан компанией Adobe Systems между 1982 и 1984 годами.
- Создан Джоном Уорноком, Чарльзом Гешке, Дугом Бротцом, Эдом Тафтом и Биллом Пэкстоном.
- Последняя версия, PostScript 3, была выпущена в 1997 году и добавила улучшенную производительность, управление цветом и сжатие изображений.
История PostScript
Корни PostScript уходят в 1976 год, когда Джон Гаффни в Evans & Sutherland разработал концепции для языка описания страниц, работая над графической базой данных. Примерно в то же время Xerox PARC разрабатывала лазерные принтеры и нуждалась в стандарте для определения изображений страниц. Сначала они создали формат Press, позднее эволюционировавший в Interpress в 1978 году, разработанный Джоном Гаффни и Мартином Невеллом.

В 1982 году Джон Уорнок и Чак Гешке покинули Xerox PARC и основали Adobe Systems, где они, вместе с Дугом Бротцом, Эдом Тафтом и Биллом Пэкстоном, разработали PostScript как более простую альтернативу Interpress. Он был выпущен в коммерческое использование в 1984 году.
Роль Apple в успехе PostScript
В 1983 году Стив Джобс увидел потенциал PostScript для Macintosh и лицензировал его у Adobe за 1,5 миллиона долларов, плюс 2,5 миллиона долларов за 20% акций Adobe. Он также попытался, но безуспешно, купить Adobe. Затем Apple и Adobe совместно работали над оптимизацией PostScript для принтера Apple LaserWriter, выпущенного в 1985 году, что сыграло ключевую роль в революции настольных издательств.
Прорыв Adobe в отображении и отображении шрифтов сделал PostScript пригодным даже на принтерах Canon с более низким разрешением в 300 точек на дюйм. Adobe не запатентовала эту технологию, чтобы сохранить её коммерческой тайной.
Упадок и наследие PostScript
В течение 1980-х и 1990-х годов PostScript широко использовался в лазерных принтерах, но его высокие требования к мощности процессора и памяти делали его дорогим. С развитием более дешевых принтеров и мощных компьютеров, программные решения заменили аппаратную обработку PostScript. К 2001 году большинство недорогих принтеров отказались от поддержки PostScript в пользу струйной технологии и программного рендеринга.
Тем не менее, PostScript остаётся доминирующим в профессиональных высококачественных принтерах, где он освобождает компьютер от рендеринга, улучшая производительность. Кроме того, PDF (Portable Document Format) — непосредственный потомок PostScript — стал стандартом для распространения электронных документов.
Уровни PostScript
PostScript претерпел эволюцию через различные уровни, каждый из которых улучшал функциональность, производительность и эффективность. Существует три основных уровня:

1. Уровень PostScript 1 (1984 год)
Первоначальная версия PostScript (Уровень 1, выпущенная в 1984 году) позволяла пользователям точно контролировать макет страницы с текстом, графикой и изображениями, и использовалась в первых лазерных принтерах. Однако она была ограничена градациями серого, медленно обрабатывала сложную графику и создавала большие файлы из-за отсутствия сжатия изображений.
- Оригинальная версия, выпущенная Adobe в 1984 году.
- Обеспечивала устройство-независимое описание страниц для текста, графики и изображений.
- Позволяла точный контроль над типографикой и макетом.
- Использовалась в первых принтерах PostScript, включая Apple LaserWriter.
- Ограничения:
- Нет поддержки цветов (только градации серого).
- Медленная обработка сложной графики.
- Отсутствие встроенного сжатия изображений, что приводило к большим размерам файлов.
2. Уровень PostScript 2 (1991 год)
PostScript Уровень 2 (1991) улучшил производительность, добавил цветную печать, сжатие файлов, улучшил шрифты и ускорил обработку сложной графики.
- Улучшена производительность и эффективность использования памяти.
- Добавлена поддержка цветной печати (CMYK и спотовые цвета).
- Введено сжатие данных для уменьшения размеров файлов.
- Улучшено обращение со шрифтами (шрифты Type 1 и Type 3).
- Введены шаблоны, формы и составные шрифты для лучшего отображения текста.
- Более быстрая обработка сложной графики по сравнению с уровнем 1.
3. PostScript 3 (1997 год)
PostScript 3 (1997) стал значительным обновлением с более быстрым рендерингом, улучшенным цветом, поддержкой печати с очень высоким разрешением, улучшенными шрифтами и усиленными графическими эффектами. Хотя сейчас он менее распространен, он все еще используется на некоторых высококачественных печатных устройствах.
- Крупное обновление с более эффективным рендерингом.
- Улучшенное управление цветом с использованием профилей ICC.
- Улучшенная поддержка печати с высоким разрешением (свыше 2400 dpi).
- Улучшенное обращение со шрифтами, включая поддержку множественных мастер-шрифтов.
- Больше прозрачных и затеняющих эффектов (улучшенное графическое отображение).
- Заменен PDF на основе рабочих потоков в современных издательствах, но все еще используется в высококачественных принтерах.
PostScript в печати
До PostScript:
- Ранние принтеры печатали только текстовые символы, обычно в ASCII, с фиксированными символами (например, клавиши пишущей машинки, металлические полосы или оптические пластины).
- Матричные принтеры ввели возможность выбора шрифтов и загрузки пользовательских глифов, наряду с базовой растровой графикой через управляющие последовательности, но требовали специфических драйверов для каждой модели принтера.
- Векторная графика обрабатывалась плоттерами (например, на основе HPGL), но они были медленными, дорогими и ограничены только графикой.
Печать с PostScript:
- Лазерные принтеры сочетали в себе достоинства матричных принтеров и плоттеров, позволяя печатать высококачественный текст и графику на одной странице.
- PostScript объединил управление печатью с помощью единообразного, не зависящего от устройства языка, который работал на разных принтерах и программном обеспечении.
- В отличие от традиционных языков управления принтерами, PostScript — это полноценный язык программирования, позволяющий точно отображать документы.
- На лету растеризация: PostScript определяет все (включая текст) с использованием прямых линий и кривых Безье, что позволяет плавно масштабировать, вращать и преобразовывать.
- Интерпретаторы PostScript, называемые процессорами растровых изображений (RIP), преобразуют команды в точки, необходимые для окончательного вывода.
Обработка шрифтов в PostScript
Система шрифтов PostScript использует основные графические формы для создания масштабируемых глифов, позволяя изменять размер шрифтов без потери качества. Используется указание шрифтов, чтобы обеспечить четкость и разборчивость шрифтов даже при малых размерах или низком разрешении. Шрифты PostScript хранятся в различных специализированных форматах “Тип”, каждый из которых предлагает разные возможности.

Система шрифтов PostScript
- Использует графические примитивы для определения масштабируемых глифов.
- Указание шрифтов обеспечивает качественную визуализацию, даже с низким разрешением.
- Шрифты хранились в специализированных форматах Типов с разными возможностями.
Типы шрифтов PostScript
PostScript предлагал различные форматы шрифтов. Высококачественные шрифты формата Adobe Type 1 изначально лицензировались, в то время как шрифты Type 3, не имеющие стандартного указания шрифтов, использовались другими. Форматы Type 2 и CFF уменьшили размеры файлов и подготовили почву для OpenType. Шрифты с идентификацией ключей CID поддерживали большие азиатские наборы символов и могли использовать либо структуры Type 1, либо Type 2.
Шрифт Type 1 (T1):
- Собственный сжатый и зашифрованный формат шрифта Adobe.
- Используется для высококачественных шрифтов с указанием.
- Adobe изначально лицензировала технологию Type 1 за плату.
Шрифт Type 3 (T3):
- Позволяет использовать все возможности PostScript, но не имел стандартизированного указания.
- Используется теми, кто не мог лицензировать технологию Type 1.
Шрифт Type 2 (T2) и Сжатый формат шрифтов (CFF):
- Уменьшение размера файла шрифта для повышения эффективности.
- Стал основой для шрифтов OpenType.
Шрифты с идентификацией ключей CID:
- Разработаны для азиатских (CJK) наборов символов с большими пространствами кодировки.
- Могут использовать Type 1 или Type 2 для разных структур шрифтов.
Эволюция форматов шрифтов
Apple создала шрифты TrueType, чтобы конкурировать с шрифтами Adobe. Это заставило Adobe раскрыть спецификации своих шрифтов. Позже Adobe и Microsoft объединились для разработки шрифтов OpenType, которые сочетали лучшие возможности обоих форматов и стали стандартом для современных шрифтов.
TrueType (1991):
- Разработан Apple как конкурент системе Adobe.
- Заставил Adobe опубликовать спецификации Type 1 для всеобщего доступа.
OpenType (конец 1990-х):
- Совместная разработка Adobe и Microsoft.
- Объединил функциональность Type 1 и TrueType.
- Стал отраслевым стандартом для современных шрифтов.
Конец поддержки Type 1
- Adobe официально прекратила поддержку шрифтов Type 1 в январе 2023 года в пользу OpenType.
Формат портативных документов (PDF) и PostScript
PDF vs. PostScript
PDF и PostScript — это два формата документов, которые дают идентичный печатный вывод благодаря использованию одной и той же графической системы. Ключевое различие заключается в их структуре: PostScript — полноценный язык программирования, позволяющий динамические операции, в то время как PDF — более упрощенный, статичный формат, предназначенный для эффективного просмотра и навигации. Несмотря на эти различия, имеется возможность конвертировать файлы между двумя форматами.

- Похожая модель изображения – Обе технологии PDF и PostScript используют одну и ту же графическую систему, обеспечивая идентичный печатный вывод.
- В чем разница?
- PostScript — это Тюринг-полный язык программирования, способный выполнять динамические операции.
- PDF — более статическая структура данных, оптимизированная для эффективного доступа и навигации, что делает его более подходящим для интерактивного просмотра.
- Взаимная конвертируемость – PDF можно перевести в PostScript, и наоборот.
Язык PostScript
PostScript — это стеково-ориентированный язык программирования с динамической типизацией, схожий с Forth, но с Lisp-подобными структурами данных. Он использует обратную польскую нотацию, что требует аккуратного управления памятью. PostScript использует массивы и словари, обрабатывает типизацию во время выполнения и включает сборку мусора. Комментарии начинаются с “%”, а программы обычно начинается с “%!PS”.
- Тюринг-полный и стеково-ориентированный – Схож с Forth, но с динамической типизацией и Lisp-подобными структурами данных.
- Обратная польская нотация (RPN) – Операторы работают на стеках, требуя осторожного управления.
- Управление памятью –
- Использует скоупированную память.
- Введена сборка мусора во 2 уровне PostScript.
- Структуры данных –
- Использует массивы и словари.
- Отсутствие формальных объявлений типов—типизация управляется во время выполнения.
- Комментарии и структура программы –
- % вводит комментарии.
- Программы обычно начинаются с "%!PS", чтобы определить формат PostScript.
Как используется PostScript
- В основном генерируется программным обеспечением, а не пишется вручную.
- Может использоваться как полнофункциональный язык программирования для автоматизации.
- Интерпретируется принтерами (RIPs) или на экране вьюеров.
Пример простого файла PostScript
Вот простой пример PostScript (.ps) файла, который печатает “Hello, World!” на странице:
%!PS
/Times-Roman findfont 24 scalefont setfont
100 700 moveto
(Hello, World!) show
showpage
Объяснение:
%!PS
→ Определяет файл как документ PostScript./Times-Roman findfont 24 scalefont setfont
→ Выбирает шрифт Times-Roman размером 24.100 700 moveto
→ Перемещает курсор на координаты (100, 700) на странице.(Hello, World!) show
→ Отображает “Hello, World!” в указанной позиции.showpage
→ Сообщает принтеру напечатать страницу.
Вы можете сохранить это как hello.ps и открыть с помощью просмотрщика PostScript (например, GSview, Ghostscript) или отправить на принтер PostScript.
Hello.ps после рендеринга

Список программного обеспечения для рендеринга PostScript
Просмотрщики и интерпретаторы PostScript
- Ghostscript (Open-source) – Популярный интерпретатор для PostScript и PDF.
- GSview – Графический интерфейс для Ghostscript.
- MuPDF – Легковесный вьюер, поддерживающий PostScript и PDF.
- Xpdf – Открытый просмотрщик PDF с некоторой поддержкой PostScript.
- Evince – Просмотрщик документов GNOME, который может обрабатывать файлы PostScript.
- Okular – Просмотрщик документов KDE с поддержкой PostScript.
- Apple Preview – Встроенный просмотрщик macOS, поддерживающий PostScript и PDF.
Принтеры и растеризаторы PostScript
- Adobe Acrobat Distiller – Конвертирует PostScript в качественные PDF-файлы.
- CUPS (Common Unix Printing System) – Обработка печати PostScript в Unix/Linux.
- PPR (Printer Production Release) – Диспетчер печати и рендеринга PostScript.
Программное обеспечение для векторной графики и настольной издательской системы
- Adobe Illustrator – Может открывать и редактировать файлы PostScript.
- CorelDRAW – Поддерживает PostScript для векторной графики.
- Scribus – Открытое программное обеспечение для настольной издательской системы с поддержкой PostScript.
- Inkscape – Может импортировать/экспортировать PostScript (через Ghostscript).
Командные инструменты и инструменты для конвертации
- ps2pdf (часть Ghostscript) – Конвертирует PostScript в PDF.
- pstopdf (инструмент командной строки macOS) – Конвертирует PostScript в PDF.
- ImageMagick – Может рендерить файлы PostScript в изображения.