Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.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,我使用的方法之一是: PrintDocument doc = new PrintDocument(); doc.PrinterSettings.PrinterName = "printername"; string[] files = Directory.GetFiles("D:\\Invoice"); foreach (string file in files)

我使用的方法之一是:

                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 reader并在那里显示错误消息。霍普解释道

“打开文档时出错。找不到该文件。”


有人能帮我解决这些问题吗?

在第二段中,这似乎是错误的:

string fname = Path.GetFileName(file);
printJob.StartInfo.WorkingDirectory = Path.GetDirectoryName(fname);
printJob.Start();
您只需设置
工作目录
printJob
如何获取实际文件名



在第一段代码中,您可能并没有设置所有内容。你查过了吗?通常,在询问SO之前,最好先查找、阅读并理解文档。

请改进问题。异常的堆栈跟踪,并指示它在代码中发生的行(堆栈跟踪中的行号不会告诉它在代码段中是哪一行)。“错误”是在哪里打印的,还是一个例外?找不到什么文件?@hyde添加了您要求我提供的详细信息。。你能帮忙吗?