Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#处理开始将复印件打印到打印机_C#_Printing - Fatal编程技术网

C#处理开始将复印件打印到打印机

C#处理开始将复印件打印到打印机,c#,printing,C#,Printing,我希望能够打印打印机对话框中设置的多份副本,并将它们发送到打印机 using (System.Windows.Forms.PrintDialog printerDialog = new System.Windows.Forms.PrintDialog()) { string printer; if (printerDialog.ShowDialog() == DialogResult.OK) { printer = printerDialog.Printe

我希望能够打印打印机对话框中设置的多份副本,并将它们发送到打印机

using (System.Windows.Forms.PrintDialog printerDialog = new System.Windows.Forms.PrintDialog())
{
    string printer;
    if (printerDialog.ShowDialog() == DialogResult.OK)
    {
        printer = printerDialog.PrinterSettings.PrinterName;
        System.Diagnostics.ProcessStartInfo info = new System.Diagnostics.ProcessStartInfo(GetDocPath("StickerBlank.docx", Client.ClientID.ToString()));
        for (int i = 0; i < printerDialog.PrinterSettings.Copies; i++)
        {
            Thread.Sleep(3000);
            using (var regWord = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\Winword.exe"))
            {
                //string arguments = String.Format(@"-t ""{0}"" ""{1}""", printerDialo, printer);
                if (regWord == null)
                {
                    info.Arguments = "\"" + printer + "\"";
                    info.CreateNoWindow = true;
                    info.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
                    info.UseShellExecute = true;
                    info.Verb = "Print";
                }
                else
                {
                    info.Arguments = "\"" + printer + "\"";
                    info.CreateNoWindow = true;
                    info.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
                    info.UseShellExecute = true;
                    info.Verb = "PrintTo";
                }
            }   
            System.Diagnostics.Process.Start(info);
        }
    }
}
使用(System.Windows.Forms.PrintDialog printerDialog=new System.Windows.Forms.PrintDialog())
{
字符串打印机;
if(printerDialog.ShowDialog()==DialogResult.OK)
{
printer=printerDialog.PrinterSettings.PrinterName;
System.Diagnostics.ProcessStartInfo info=new System.Diagnostics.ProcessStartInfo(GetDocPath(“stickblank.docx”,Client.ClientID.ToString());
对于(int i=0;i

它可以工作,但问题是作为我的模板的word文档打开的数量与从printdialog设置的副本数量相同。有没有办法指定我需要5个副本作为参数?

在循环中,您正在打开多个实例。为什么不使用printdialog的一个实例并指定副本数?我正在使用printdialog的一个实例,请查看代码。我不知道如何将我从对话框中选择的副本数传递给进程。确实,您使用的是printdialog的一个实例,但您打开的是docx文件的多个实例:System.Diagnostics.process.Start(info);我知道这个问题有没有办法用一个流程实例来解决这个问题你看过这里吗-