web-dev-qa-db-ja.com

Ghostscript:PDF総ページ数

GhostscriptライブラリAPI(C#からラッピング)を使用して、アプリケーションからPDFドキュメントを印刷しています。
'-dFirstPage'および '-dLastPage'パラメーターを使用して、印刷するページの範囲を選択できますが、合計はどうですかPDFのページ数?

PDFドキュメントに4ページしかない場合、ユーザーが2から10までのページ間隔を選択できるようにするのはあまり良いことではありません。

gsapi_init_with_args APIライブラリ呼び出しを介してGhostscriptライブラリを使用していると考えてください。

21
lorenzoff

Ghostscriptは、a PDF on stdoutのページ数をカウントして表示できます。コマンドラインは

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

ここでは、すべての-c "..."のものがPostScriptコマンドラインスニペットです(いくつかのGS内部コマンド拡張を使用)。そして、input.pdfはPDFファイル名です((c:/path/to/my.pdf)のようなフルパスでもかまいません)。

ただし、thisの種類のジョブに適した、より高速なツールは、pdfinfo(XPDFユーティリティの一部であり、Windowsでも利用可能)を使用することです。


更新:

@ebyrobは、サンプルのコマンドラインを変更して表示PDF操作。これを試してください:

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

まあ、それは単一の操作ではありません-それは単一のコマンドラインでの2つの異なる操作です。

39
Kurt Pfeifle

私はこのスクリプトを作成しようとしました:

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

c#wrappedソリューションで動作し、エラー「/ undefinedfilename」が発生し続けました。この場合、ファイルパスのDirectorySeperatorとしてスラッシュ「/」があり、バックスラッシュ「\」がないことを確認してください。 Kurt Pfeifleがすでに書いていることは知っていますが、私はそれを見落としていました。

2
Sam Tigle