можно показать прогресс рендеринга PS файла с ghostscript? - PullRequest
0 голосов
/ 07 декабря 2018

Я использую GhostScript.NET для C # для преобразования PDF в PostScript (устройство ps2write) и хочу показать прогресс рендеринга (processor.StartProcessing()), так как большие файлы занимают много времени

Я знаючто mswinpr2 показывает прогресс рендеринга, но ps2write нет.

Возможно ли это сделать с помощью ps2write?

1 Ответ

0 голосов
/ 07 декабря 2018

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

Все, что прогресс mswinpr2 devvice указывает на процентную долю программы, которая была прочитана до сих пор, которая является достаточно надежной, но не на 100% точной.

Устройство ps2weite на самом деле не отображает ввсе, в общем.Он интерпретирует входные данные, создавая последовательность графических примитивов, которые затем использует для создания новой программы PostScript.

Поскольку нет способа узнать, когда (или действительно, если) программа PostScript достигнет состояния остановки, вы не можете сказать, каков прогресс.

Если вход является программой PostScript, то вы можете кормить программу порциями за один раз и вычислять прогресс как количество прочитанного / размер файла* 100.

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

Итак, подведем итог;если вход представляет собой PostScript, то вы можете рассчитать вид прогресса, если вход представляет собой PDF, то нет реалистичного способа определить прогресс.Лучшее, что вы можете сделать, - это определить количество страниц в файле PDF и подсчитать количество обработанных страниц.

...