Ghostscript:PDF总页数

时间:2011-01-28 09:07:00

标签: api pdf ghostscript

我正在使用Ghostscript库API(从C#包装)从我的应用程序中打印PDF文档 使用' -dFirstPage '和' -dLastPage '参数,我可以选择要打印的页面范围,但是PDF页面的总数如何? ?

允许用户选择2到10之间的页面间隔并不是很好,我说,PDF文档只有4页。

考虑我通过 gsapi_init_with_args API库调用使用Ghostscript库。

2 个答案:

答案 0 :(得分:37)

Ghostscript可以在stdout上计算并显示PDF的页数。命令行是

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 :(得分:1)

我试着制作这个剧本:

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

c#wrapped 解决方案中工作并不断收到错误“/ undefinedfilename”。在这种情况下,请确保您的文件路径具有斜杠“/”作为DirectorySeperator而不是反斜杠“\”。我知道Kurt Pfeifle已经写过了,但它发生在我身上,我只是忽略了它。