Ghostscript: PDF всего страниц - PullRequest
18 голосов
/ 28 января 2011

Я использую API библиотеки Ghostscript (упаковка из C #) для печати документов PDF из моего приложения.
С параметрами ' -dFirstPage ' и ' -dLastPage 'Я могу выбрать диапазон страниц для печати, но как насчет общего количества страниц PDF?

Не очень удобно разрешать пользователю выбирать интервал между 2 и 10 страницами, если, скажем, в документе PDF всего 4 страницы.

Учтите, что я использую библиотеку Ghostscript через вызов библиотеки gsapi_init_with_args API.

Ответы [ 2 ]

37 голосов
/ 28 января 2011

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).


Обновление:

@ ebyrob хочет знать, можно ли изменить мой пример командной строки, чтобы он также отображал PDF за одну операцию.Попробуйте это:

gswin32c ^
  -q ^
  -c "(input.pdf) (r) file runpdfbegin pdfpagecount =" ^
  -f input.pdf

Ну, это не одна операция, это просто две разные операции в одной командной строке.

1 голос
/ 15 января 2018

Я пытался заставить этот скрипт:

gswin32c ^
  -q ^
  -c "(input.pdf) (r) file runpdfbegin pdfpagecount =" ^
  -f input.pdf

работать в c # обернутом решении и продолжал получать ошибку "/ undefinedfilename"В этом случае убедитесь, что ваш путь к файлу имеет косую черту "/" в качестве DirectorySeperator, а не обратную косую черту "\".Я знаю, что Курт Пфайфл уже написал это, но это случилось со мной, я просто пропустил это.

...