无法打印文档

本文关键字:文档 打印 | 更新日期: 2023-09-27 18:03:33

我使用的方法之一:

                PrintDocument doc = new PrintDocument();
                doc.PrinterSettings.PrinterName = "printername";
                string[] files = Directory.GetFiles("D:''Invoice");
                foreach (string file in files)
                {
                    string fname = Path.GetFileName(file);
                    doc.DocumentName = fname;
                    doc.Print();
                    Console.WriteLine(file);
                }

这在doc.Print()行给出一个异常。

"访问打印机'printername'的设置无效。"

我使用的另一种方法:

                Process printJob = new Process();
                printJob.StartInfo.FileName = @"C:'Program Files (x86)'Adobe'Reader 10.0'Reader'AcroRD32.exe";
                printJob.StartInfo.UseShellExecute = false;
                printJob.StartInfo.Verb = "Print";
                printJob.StartInfo.CreateNoWindow = true;
                printJob.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                printJob.StartInfo.Arguments = "'"" + printerAddress + "'"";
                string[] files = Directory.GetFiles("D:''Invoice");
                foreach (string file in files)
                {
                    string fname = Path.GetFileName(file);
                    printJob.StartInfo.WorkingDirectory = Path.GetDirectoryName(fname);
                     printJob.Start();
                    //Console.WriteLine(fname);
                }

在printJob.Start()之后给出一个错误。由于是pdf文件,它打开Adobe阅读器并在那里显示错误消息。

"打开文档出错。"找不到文件。"

有人能在这些问题上帮助我吗?

无法打印文档

在第二个代码片段中,这似乎是错误的:

string fname = Path.GetFileName(file);
printJob.StartInfo.WorkingDirectory = Path.GetDirectoryName(fname);
printJob.Start();

您只需要设置WorkingDirectoryprintJob如何获得实际的文件名?


在第一个代码片段中,您可能没有设置所有内容。你检查过MSDN文档了吗?在SO.

之前,尝试查找,然后阅读并尝试理解文档通常是一个好主意…