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