如何在 c# 中使用 "Process" 时仅打印 1 份文档副本



我正在尝试通过启动进程在 c# 控制台应用程序中打印 pdf。 它不是只打印文档的 1 份副本,而是打印多份副本(3、4、5 或 6 份不可预测(。这是我的代码...

var p = new Process
{
StartInfo = new ProcessStartInfo
{
CreateNoWindow = true,
Verb = "PrintTo",
Arguments = printerName,
FileName = filePath
}
};
p.Start();

你能告诉我我做错了什么吗?

您可以使用此代码执行此操作。

private void SendToPrinter(string prepDok)
{
ProcessStartInfo info = new ProcessStartInfo();
info.Verb = "print";
info.FileName = prepDok;
info.CreateNoWindow = false;
info.WindowStyle = ProcessWindowStyle.Hidden;
System.Windows.Forms.PrintDialog pd = new System.Windows.Forms.PrintDialog();
pd.PrinterSettings.Copies = 1;
Process p = new Process();
p.StartInfo = info;
p.StartInfo.Arguments = pd.PrinterSettings.PrinterName;
p.Start();
p.CloseMainWindow();
Thread.Sleep(4000);
if (!p.WaitForExit(5000))
{
if (!p.HasExited)
{
p.Kill();
}
}
}

这会将份数设置为 1,并且不会显示打印对话框。

最新更新