Как работает конвертация PDF в Postscript? - PullRequest
0 голосов
/ 22 марта 2019

Я понимаю основной процесс преобразования PS в PDF. PS - это программа, которая рисует, поэтому интерпретатор PS запускает программу и рисует объект, а затем выводит эти объекты в конверт PDF.

Как этот процесс работает в обратном порядке? Является ли основной идеей обрабатывать каждый элемент объекта в файле PDF как изображение, а затем создавать набор инструкций PS, которые рисуют каждое изображение?

1 Ответ

0 голосов
/ 22 марта 2019

Я бы не сказал, что преобразование PS-> PDF работает при рендеринге операций рисования PostScript, что подразумевает растровое изображение.В общем случае операции маркировки копируются, а затем эквивалентные операции маркировки пишутся с использованием конструкций PDF.

Теперь PDF - это язык описания, а не язык программирования.Это означает, что при запуске из PDF мы сразу получаем описание объекта вместо запуска программы для его генерации.Так что гораздо проще выполнить задачу, взяв каждое описание и превратив его в программу PostScript.

На самом деле многие такие преобразования фактически работают, определяя операторы PDF как процедуры PostScript, а затем просто выгружают операции PDF напрямую,Например:

  /m /moveto load def
  /l /lineto load def
  /c /curveto load def
  /v { currentpoint 6 2 roll curveto } bind def
  /y { 2 copy curveto } bind def
  /re {
    4 2 roll moveto  exch dup 0 rlineto  0 3 -1 roll rlineto  neg 0 rlineto
    closepath
  } def

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

...