Почему рендеринг PostScript намного медленнее рендеринга PDF?

Почему рендеринг PostScript намного медленнее рендеринга PDF?

Я всегда думал, что файлы PDF и PostScript довольно похожи, хотя PostScript — это полный по Тьюрингу язык.

Есть ли причина, по которой PostScript намного медленнее при рендеринге (пробовал с evince на Ubuntu), чем PDF, или программа чтения просто намного менее оптимизирована?

решение1

В настоящее время у меня нет возможности проверить, верно ли мое предположение, но вот оно:

яподозреватькоторый evinceне может напрямую визуализировать и отображать PostScript на экране. Возможно, он может делать это только для PDF. Поэтому он может использовать трюк для файлов PostScript: за вашей спиной он преобразует их во временный файл PDF и отображает его вместо этого.

Попробуйте установить (очень старомодный) gvпросмотрщик PostScript на Ubuntu:

 sudo apt-get install gv

а потом

 gv /path/to/PostScript.ps

и посмотрите, будет ли он быстрее. ( gvтакже использует PostScript для рендеринга, но не конвертирует в PDF.) Или вы используете Ghostscript напрямую

 gs /path/to/PostScript.ps

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

В PDF нет «циклов» и подобных вычислений...

решение2

Но самое главное, PDF работает постранично: каждая страница по сути является самостоятельным объектом, поэтому вы можете перейти к любой странице, и читатель может немедленно начать ее отображение.

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

Кроме того, PDF-файлы содержат объекты, которые необходимо отобразить, в то время как PostScript — это язык программирования, которыйдает указание рендереру рисовать такие объектыТаким образом, PDF в некотором смысле является предварительно обработанным по сравнению с PS и, следовательно, его можно быстрее интерпретировать.

решение3

Постскриптумэтоязык программирования.

PDFэтоформат документа.

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

решение4

Это зависит от кода PostScript. Можно написать алгоритм 3D-рендеринга на PostScript и использовать встроенные файлы AutoCAD в качестве изображений. Рендеринг займет много времени, в то время как PDF будет содержать предварительно растрированные изображения. В некоторых случаях PostScript будет рендериться намного быстрее. К сожалению, большинство популярных издательских программ выдает очень неэффективный код PostScript. Но конвертеры PS->PDF способны оптимизировать свой вывод для быстрого рендеринга.

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