使用 Foxit Reader 从进程中静默打印打开 GUI

Silent print with Foxit Reader from process opens GUI

我在通过 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 执行此操作会静默进行,但不会打印我的一半文件(但话又说回来,官方不支持 Adob​​e Reader 的命令行界面,因此请不要建议使用土坯 Reader)

来源:

尝试设置 WindowStyle 属性,大多数 windowed 应用程序都听它:

psInfo.WindowStyle = ProcessWindowStyle.Hidden;

此外,the documentation 声明 CreateNoWindow 与 UseShellExecute 不兼容,因此您可能应该将其关闭:

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

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

我认为这是福昕新版本的设计Reader。

正在删除从官方网站下载的最新版本并从 Old Apps 安装旧版本 (6.2.3)。 打印后进程立即终止。

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

startInfo.Arguments = String.Format(" \"{0}\" /t  \"{1}\"",
      reportFullPath,
      printerName);