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

Заголовок - PostScript: Понятное Объяснение

Что такое PostScript?

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

PostScript: Особенности и Применение

Объяснение 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 году, разработанный Джоном Гаффни и Мартином Невеллом.

Эволюция и Влияние PostScript

В 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 претерпел эволюцию через различные уровни, каждый из которых улучшал функциональность, производительность и эффективность. Существует три основных уровня:

Эволюция уровней 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

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 — более упрощенный, статичный формат, предназначенный для эффективного просмотра и навигации. Несмотря на эти различия, имеется возможность конвертировать файлы между двумя форматами.

Понимание 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

Объяснение:

  1. %!PS → Определяет файл как документ PostScript.
  2. /Times-Roman findfont 24 scalefont setfont → Выбирает шрифт Times-Roman размером 24.
  3. 100 700 moveto → Перемещает курсор на координаты (100, 700) на странице.
  4. (Hello, World!) show → Отображает “Hello, World!” в указанной позиции.
  5. showpage → Сообщает принтеру напечатать страницу.

Вы можете сохранить это как hello.ps и открыть с помощью просмотрщика PostScript (например, GSview, Ghostscript) или отправить на принтер PostScript.

Hello.ps после рендеринга

Заголовок - Hello.ps после рендеринга

Список программного обеспечения для рендеринга PostScript

Просмотрщики и интерпретаторы PostScript

  1. Ghostscript (Open-source) – Популярный интерпретатор для PostScript и PDF.
  2. GSview – Графический интерфейс для Ghostscript.
  3. MuPDF – Легковесный вьюер, поддерживающий PostScript и PDF.
  4. Xpdf – Открытый просмотрщик PDF с некоторой поддержкой PostScript.
  5. Evince – Просмотрщик документов GNOME, который может обрабатывать файлы PostScript.
  6. Okular – Просмотрщик документов KDE с поддержкой PostScript.
  7. Apple Preview – Встроенный просмотрщик macOS, поддерживающий PostScript и PDF.

Принтеры и растеризаторы PostScript

  1. Adobe Acrobat Distiller – Конвертирует PostScript в качественные PDF-файлы.
  2. CUPS (Common Unix Printing System) – Обработка печати PostScript в Unix/Linux.
  3. PPR (Printer Production Release) – Диспетчер печати и рендеринга PostScript.

Программное обеспечение для векторной графики и настольной издательской системы

  1. Adobe Illustrator – Может открывать и редактировать файлы PostScript.
  2. CorelDRAW – Поддерживает PostScript для векторной графики.
  3. Scribus – Открытое программное обеспечение для настольной издательской системы с поддержкой PostScript.
  4. Inkscape – Может импортировать/экспортировать PostScript (через Ghostscript).

Командные инструменты и инструменты для конвертации

  1. ps2pdf (часть Ghostscript) – Конвертирует PostScript в PDF.
  2. pstopdf (инструмент командной строки macOS) – Конвертирует PostScript в PDF.
  3. ImageMagick – Может рендерить файлы PostScript в изображения.