防止在调用PrintTo c#后打开默认的pdf阅读器

时间:2018-11-01 16:46:13

标签: c# pdf printing

我正在尝试制作一个将pdf文件发送到热敏打印机的程序。问题在于,将文件发送到打印机后,默认的PDF阅读器(在这种情况下为Foxit阅读器)始终打开且无法管理。是的,我已经花了几天时间进行搜索,但对我来说完全没有用。

此外,我试图关闭Foxit Reader PDF Printer上的“ View PDF Result”属性,但似乎不能正常工作。

这是我的简单代码:

 System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo(@"D:\test.pdf");
            info.Arguments = "\"XP-58\"";
            info.CreateNoWindow = true;
            info.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
            info.UseShellExecute = true;
            info.Verb = "PrintTo";

            PrintProcess p = new PrintProcess();
            p.StartInfo = info;
            p.EnableRaisingEvents = true;
            p.Start();
            p.WaitForInputIdle(1500);
            p.Stop();

1 个答案:

答案 0 :(得分:0)

现在,我可以使用这种方式完全关闭pdf阅读器(foxit阅读器)或其他工具。但是,仍在寻找另一个对象可以在不打开然后将其关闭的情况下静默地完成此任务。

private static bool KillAdobe(string name)
    {
        foreach (Process clsProcess in Process.GetProcesses().Where(
                     clsProcess => clsProcess.ProcessName.StartsWith(name)))
        {
            clsProcess.Kill();
            return true;
        }
        return false;
    }