我在通过福昕阅读器打印PDF时遇到问题。问题不在于它不是打印,而是在尝试这样做时 GUI已加载 ..我希望打印在后台发生......
到目前为止我读到的所有内容都表明下面的代码实际上应该在后台打印,但对于每个打印作业,Foxit GUI都会弹出... GUI也会在打印后关闭,但我不会希望它首先打开。我正在从承载WCF服务的控制台应用程序执行下面的代码,如果这很重要......
ProcessStartInfo psInfo = new ProcessStartInfo();
psInfo.FileName = FoxitReaderLocation;
psInfo.Arguments = String.Format("/t \"{0}\" \"{1}\"",
fileLocation,
printerName);
psInfo.WindowStyle = ProcessWindowStyle.Hidden;
psInfo.CreateNoWindow = true;
psInfo.UseShellExecute = true;
Process process = Process.Start(psInfo);
process.WaitForExit(10000);
if (!process.HasExited)
{
process.Kill();
process.Dispose();
}
使用/p "filelocation"
进行打印也适用于默认打印机,但会出现与GUI相同的问题。
使用Adobe Reader执行此操作会无声地进行,但不会打印我的一半文件(但是再次,Adobe Reader的命令行界面不受官方支持,所以请不要建议使用Adobe Reader)< / p>
来源:
答案 0 :(得分:3)
我认为这是福克斯读者新版本的设计。
删除从官方网站下载的最新版本,并从Old Apps安装旧版本( 6.2.3 )。 打印后,该过程立即终止。
答案 1 :(得分:1)
遇到同样的问题,但是当我重新排列字符串中的参数时得到修复:
startInfo.Arguments = String.Format(" \"{0}\" /t \"{1}\"",
reportFullPath,
printerName);
答案 2 :(得分:0)
尝试设置WindowStyle属性,大多数窗口应用程序都会监听它:
psInfo.WindowStyle = ProcessWindowStyle.Hidden;
此外,the documentation表示CreateNoWindow与UseShellExecute不兼容,因此您应该将其关闭:
psInfo.UseShellExecute = false; //Using ShellExecute messes stuff up
但是,CreateNoWindow实际上指定是否将现有控制台窗口用于控制台应用程序 [1] ,并且可以不指定,因为它对GUI应用程序的启动没有影响。