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添加了您要求我提供的详细信息。。你能帮忙吗?