Почему люди все еще используют Postscript?

Почему люди все еще используют Postscript?

Сегодня утром я отправил статью в журнал, и меня попросили приложить файл PDF, как я и ожидал, и файл Postscript (PS).

Создание PS-файла оказалось более сложной задачей, поскольку некоторые из моих команд LaTeX, которые я всегда компилировал с помощью pdflatex, не компилировались с помощью . latex(в частности, включая графику).

В итоге я конвертировал PDF в файл PS, но получил файл в 4 раза большего размера (примерно 20 МБ вместо 5 МБ).

Также, похоже, что открытие файла Postscript любым современным средством чтения занимает больше времени, поскольку ему приходится «конвертировать» (может быть, компилировать? или интерпретировать?) файл.

Мне было интересно -- в чем польза Postscript сегодня? Есть ли у него преимущества перед более современным и широко используемым PDF?

решение1

Postscript по-прежнему используется как промежуточный формат документа, поскольку это полноценный язык программирования, позволяющий вам вычислять графику, чего не может PDF. PDF показывает только результат (после некоторых преобразований, иногда называемых «дистилляцией») вычислений, которые может выполнить Postscript.

Пакет PSTricks на основе Postscript является примером, который активно использует графические вычисления. Он может дажерешать дифференциальные уравнения. А если у вас есть принтер Postscript, он может выполнить эти вычисления за вас.

РЕДАКТИРОВАТЬ, чтобы ответить на комментарий Дэниела:

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

С помощью PostScript можно легко удвоить ширину строки во всем документе, поместив

userdict /setlinewidth {2 mul systemdict /setlinewidth get exec} put

в заголовок документа.

С PDF такая настройка гораздо сложнее.

решение2

С точки зрения издателя, я думаю, единственная фундаментальная причина заключается в том, устаревшее программное обеспечение. Postscript был долгосрочным и общепринятым стандартом. Обновление существующих цепочек инструментов до PDF потребовало бы огромных инвестиций.

Так что я думаю, все дело в истории. Есть отличный вопрос и ответ, в котором обсуждаются фундаментальные различия между Postscript (PS) и PDF с технической точки зрения: Фундаментальные отличия: PSTricks, TikZ/PGF и другие, но немного упускает из виду (историческое) значение этих технических различий:

В основном технические различия таковы:

  • PS — это (Тьюринг-)полный язык, который позволяет откладывать произвольные вычисления на время рендеринга, то есть на время, когда файл PSиспользовал(т.е. напечатанный).
  • В PDF все расчеты должны быть завершены при открытии PDF-файла.произведено.

В свое время модель PS имела ряд явных преимуществ:

  • В 80-х годах приличная рабочая станция (VAX-11) могла выполнять 1,5 миллиона инструкций в секунду (MIPS) и была оснащена примерно 1 МБ оперативной памяти.
  • Рендеринг полной страницы A4 с разрешением 150x150 dpi на такой системе уже был сложной задачей. Переход на более высокое разрешение (300x300 или 600x600 dpi) был в принципе невозможен.

  • Однако даже в то время лазерный принтер мог печатать страницу с разрешением 200x200 точек на дюйм и более.

  • Промышленные печатные машины, используемые издательствами, уже могли справляться с гораздо более высоким разрешением.

Делегируя вычислительную часть времени использования, то есть печатающему устройству, PS обеспечил переносимость между всеми этими устройствами и сделал возможным подготовку высококачественных документов даже на недорогих компьютерах. Вместо того, чтобы оснащать каждую рабочую станцию ​​достаточным объемом оперативной памяти и мощностью процессора для отображения страниц с разрешением 200x200 точек на дюйм (не говоря уже о размерах дисков и пропускной способности сети, необходимых для хранения и передачи полученных документов), было достаточно иметь один лазерный принтер за 10 000 долларов, чтобы выполнить работу для всего отдела. Если бы книга была профессионально издана, промышленный принтер за 10 000 000 долларов мог бы обработатьодинаковыйДокумент PS для отображения с разрешением 1200x1200 точек на дюйм.

20 лет спустя мощность ЦП и доступный объем оперативной памяти выросли в 4000 раз. Однако принтеры с процессором растровых изображений PS (RIP) все еще относительно дороги:

  • Уже в 90-х годах стали популярны «программные RIP» (например, ghostscript). Ghostscript выполняет всю обработку на вашем компьютере и тем самым позволяет печатать документы PS даже на недорогом принтере, не имеющем аппаратного RIP.

  • К 2000 году пропускная способность обычных ПК и сетей стала настолько высокой, что «программная обработка RIP» перед печатью обычно выполняется намного быстрее, чем использование встроенного RIP-процессора принтера, особенно при печати сложных документов PS.

  • В то же десятилетие PDF стал популярным, поэтому также возросла важность PS какtheшироко поддерживаемый стандарт отклонений документов принтера.

решение3

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

Для простого примера рассмотрим лист миллиметровой бумаги толщиной 5 мм. PDF-файл будет содержать конечные точки для каждой линии. Однако в PostScript это можно сделать с помощью 2 циклов.


Преобразованиеназад, из pdf обратно в ps, в общем случае не способен использовать алгоритмическое сжатие. PDF должен быть проанализирован каким-то действительно умным ИИ/экспертом. Обычное преобразование заключается в том, чтобы просто представить те же структуры pdf с помощью postscript, который, как правило, более многословен. Например, 32-битное двоичное целое число займет 4 байта в pdf, но займет 1..14 байтов в текстовом представлении (ascii).

решение4

Одна причинаЯ недавно узнал озаключается в том, что вы можете создатьзависящий от принтераPS-файл (например, с помощью функции печати в файл программы чтения PDF-файлов), который уже содержит все выбранные вами настройки принтера, что очень полезно для сложных заданий печати (например, содержащих разные, но одинаковые по размеру бумажные носители), которые необходимо время от времени печатать снова.

Связанный контент