Ghostscript: Всего страниц в формате PDF
Я использую API библиотеки Ghostscript (обертывание из С#) для печати PDF-документов из своего приложения.
С параметрами '-dFirstPage' и '-dLastPage' я могу выбрать диапазон страниц для печати, но как насчет общего количества страниц PDF?
Не очень приятно разрешить пользователю выбирать интервал страницы от 2 до 10, если, скажем так, документ PDF имеет только 4 страницы.
Учтите, что я использую библиотеку Ghostscript через вызов библиотеки API gsapi_init_with_args.
Ответы
Ответ 1
Ghostscript может подсчитывать и отображать количество страниц PDF на stdout
. Командная строка
gswin32c ^
-q ^
-dNODISPLAY ^
-c "(input.pdf) (r) file runpdfbegin pdfpagecount = quit"
Здесь весь материал -c "..."
- это фрагмент командной строки PostScript (с использованием внутренних внутренних расширений GS). И input.pdf - это имя файла PDF (также может быть полным путем, как (c:/path/to/my.pdf)
).
Однако лучшим и быстрым инструментом для этого задания должно быть использование pdfinfo
(часть утилит XPDF, также доступных в Windows).
Update:
@ebyrob хочет знать, можно ли изменить мою командную строку примера, чтобы он также отображал PDF в одной операции. Попробуйте следующее:
gswin32c ^
-q ^
-c "(input.pdf) (r) file runpdfbegin pdfpagecount =" ^
-f input.pdf
Ну, это не одна операция - это всего две разные операции в одной командной строке.
Ответ 2
Я попытался сделать это script:
gswin32c ^
-q ^
-c "(input.pdf) (r) file runpdfbegin pdfpagecount =" ^
-f input.pdf
работает в С# wrapped решении и продолжает получать ошибку /undefinedfilename. В этом случае убедитесь, что ваш путь к файлу имеет слэши "/" как "DirectorySeperator", а не "Backsclas" "\". Я знаю, что Курт Пфайфл уже написал это, но это случилось со мной, я просто забыл об этом.