3

我在通过 Foxit Reader 打印 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 也会出现同样的问题。使用 Adob​​e Reader 执行此操作时会静默发生,但不会打印我的一半文件(但话说回来,Adobe Reader 的命令行界面并未得到官方支持,因此请不要建议使用 Adob​​e Reader)

资料来源:

4

3 回答 3

3

我认为这是福昕阅读器新版本的设计。

删除从官方网站下载的最新版本并从旧应用程序安装旧版本( 6.2.3)。该过程在打印后立即终止。

于 2016-02-17T02:35:33.567 回答
1

遇到了同样的问题,但是当我重新排列字符串中的参数时得到了修复:

startInfo.Arguments = String.Format(" \"{0}\" /t  \"{1}\"",
      reportFullPath,
      printerName);
于 2017-02-24T20:13:22.300 回答
0

尝试设置 WindowStyle 属性,大多数窗口应用程序都会监听它:

psInfo.WindowStyle = ProcessWindowStyle.Hidden;

此外,文档指出 CreateNoWindow 与 UseShellExecute 兼容,因此您可能应该将其关闭:

psInfo.UseShellExecute = false; //Using ShellExecute messes stuff up

但是,CreateNoWindow 实际上指定是否为控制台应用程序使用现有的控制台窗口,[1]并且可以不指定,因为它对 GUI 应用程序的启动没有影响。

于 2015-11-06T17:46:38.633 回答