我在stackoverflow上找到了如何通过在shell上执行以下命令来使用Ghostscript计算PDF文件的页面
gs -q -dNODISPLAY -c "($PATH_TO_PDF) (r) file runpdfbegin pdfpagecount = quit"')
我想从stdin获取pdf。
我会玩一点,但没有成功。
我的方法是:
gs -q -dNODISPLAY - -c "(%stdin) (r) file runpdfbegin pdfpagecount = quit"')
我没有输出。
任何提示或建议?
答案 0 :(得分:5)
您无法使用stdin中的PDF文件,因为PDF格式或多或少地能够随机访问文件的所有部分。
在Ghostscript从stdin读取PDF文件的情况下,它首先将其复制到本地文件,然后对其进行处理,因此无论如何它都不能从stdin工作。
简而言之,这无法完成。
答案 1 :(得分:5)
这有效:
gs -q -dNODISPLAY -c "($PATH_TO_PDF) (r) file runpdfbegin pdfpagecount = quit";
我认为您尝试使用
的问题gs -q -dNODISPLAY -c "($PATH_TO_PDF) (r) file runpdfbegin pdfpagecount = quit"')
是QUIT后无法比拟的结束括号
答案 2 :(得分:-3)
可以做到。
String ars = "-q -dNODISPLAY -dNOPAUSE -sDEVICE=tiffg3 -r150.4 -o" + outputImagesPath + "%d.tiff -sPAPERSIZE=a4 " + inputPDFFile + " -c quit";
Process proc = new Process();
proc.StartInfo.FileName = ghostScriptPath;
proc.StartInfo.Arguments = ars;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
proc.Start();
proc.WaitForExit();
//Raise Your Complete Job Event Here And User Directory.GetFiles("..").Count