我需要使用sumatraPdf打印一个文件,但是总是会显示窗口来指定输出的文件名和目录。我如何在C#中自动做到这一点呢?有什么想法吗?
var printerName = "Microsoft Print to PDF";
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = "SumatraPDF.exe";
proc.StartInfo.Arguments = "-print-to " + '"' + printerName + '"' + " C:\\ttt.pdf";
proc.StartInfo.RedirectStandardError = false;
proc.StartInfo.RedirectStandardOutput = false;
proc.StartInfo.UseShellExecute = true;
proc.Start();
proc.WaitForExit();发布于 2022-10-25 23:03:18
我支持SumatraPDF,除了最基本的功能之外,它不使用额外的打印控制。
默认打印机设置是查询和修改纸张/纸类格式和其他几个通过率。
请不要使用-silent来抑制错误对话框,对于错误情况,最好由用户向您报告。
因此,为了回答您的直接问题,呈现传递不改变到打印端口驱动程序(warts和all),其中MSPrint2PDF/XPS包含一个端口提示器设备(PORTPROMPT:)
因此,这是一个需要绕过的Windows“特性”,不使用PORTPROMPT: device,我描述了如何更改Windows处理的一种方法在这里展示
https://stackoverflow.com/a/73514686/10802527
Print to PDF with powershell while suppressing the "Save As" Prompt
https://stackoverflow.com/questions/74195240
复制相似问题