0

私が使用した方法の1つ:

                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ファイルなので、アドビリーダーを開き、そこにエラーメッセージを表示します。それは説明します。

「ドキュメントを開くときにエラーが発生しました。ファイルが見つかりませんでした。」

誰でもこれらの問題について私を助けることができますか?

4

1 に答える 1

0

2 番目のスニペットでは、これは間違っているようです。

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

設定するだけですWorkingDirectoryprintJob実際のファイル名を取得するにはどうすればよいですか?


最初のスニペットでは、おそらくすべてを設定しているわけではありません。MSDN のドキュメントを確認しましたか? SOで質問する前に、ドキュメントを見つけて読んで理解しようとするのが一般的には良い考えです...

于 2013-03-13T07:09:18.763 に答える