打印用户隐藏的PDF

时间:2016-04-07 14:29:47

标签: c# pdf printing

我有一个用C#打印的PDF代码:

ProcessStartInfo info = new ProcessStartInfo();
info.Verb = "printto";
info.FileName = segnToPrint;
info.CreateNoWindow = true;
info.WindowStyle = ProcessWindowStyle.Hidden;
info.Arguments = "\""+ stmp+ "\"";
Process p = new Process();
p.StartInfo = info;
p.Start();
p.EnableRaisingEvents = true;
p.WaitForInputIdle();
System.Threading.Thread.Sleep(1000);

// Close Acrobat regardless of version
if (p != null)
{
    p.WaitForInputIdle();
    p.CloseMainWindow();
}

stmp是打印机的地址。打印工作正常,它很完美,但我随时都会看到Acrobat Reader的窗口,我打电话给这个功能,并且在打印完最后一个文件后,Acrobat Reader的页面仍然打开。

如何将所有流程隐藏到用户?

2 个答案:

答案 0 :(得分:1)

如果您想要隐藏某个窗口,那么您可以尝试使用SetWindowPos功能将其窗口左侧和顶部位置移动到屏幕外(请参阅C#代码here)。

但请注意用户交互,因为用户可能会被任务栏中运行的程序混淆,但在桌面上无法使用。

答案 1 :(得分:0)

不幸的是(正如您所发现的)acrobat reader总是会打开一个窗口。如果您希望在没有看过杂技演员的情况下进行静音打印,那么唯一的方法就是使用除acrobat阅读器之外的其他东西。两种可能的选择是使用另一个PDF阅读器,如FoxIt或尝试将您的PDF直接发送到raw form中的打印机,从而全面满足第三方应用程序的需求。