我使用Ghostscript庫API(從C#打包)從我的應用程序打印PDF文檔。
通過'-dFirstPage'和'-dLastPage'參數,我可以選擇一系列要打印的頁面,但PDF頁面的總數量如何?Ghostscript:PDF總頁數
當允許用戶選擇頁面間隔從2到10時,讓我說,PDF文檔只有4頁是不是很好。
請考慮我正在通過gsapi_init_with_args API庫調用使用Ghostscript庫。
我使用Ghostscript庫API(從C#打包)從我的應用程序打印PDF文檔。
通過'-dFirstPage'和'-dLastPage'參數,我可以選擇一系列要打印的頁面,但PDF頁面的總數量如何?Ghostscript:PDF總頁數
當允許用戶選擇頁面間隔從2到10時,讓我說,PDF文檔只有4頁是不是很好。
請考慮我正在通過gsapi_init_with_args API庫調用使用Ghostscript庫。
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
那麼,它不是一個單一的操作 - 這是在一個單一的命令行只有兩個不同的操作。
我試圖讓這個腳本:
在 C#gswin32c^
-q^
-c "(input.pdf) (r) file runpdfbegin pdfpagecount ="^
-f input.pdf
工作包裹解決方案,並不斷收到錯誤 「/ undefinedfilename」。在這種情況下,請確保您的文件路徑具有斜槓「/」作爲DirectorySeperator而不是反斜槓「\」。我知道庫爾特普菲弗已經寫了它,但它發生在我身上,我只是忽略了它。
PDF必須在其元數據目錄中聲明其頁數。你可以運行s.th.像* gs -q -c「(in.pdf)(r)文件runpdfbegin pdfpagecount = quit」*使Ghostscript對頁面進行計數。 – 2011-01-28 10:13:19
@皮皮塔斯你好,謝謝你的幫助;如果我支持,我必須使用「(in.pdf)(r)文件runpdfbegin pdfpagecount = quit」作爲GS調用的輸入參數嗎?如果是,'in.pdf'將是輸入文件,但'(r)'是什麼?再次感謝。 – lorenzoff 2011-01-28 10:39:34
只需使用'(r)'即可。這是一個Ghostscript內部宏,告訴Ghostscript讀/運行'(in.pdf)'文件...是的,唯一的變量是'in.pdf` - 用它的[path +]文件名取代它。 – 2011-01-28 14:23:22