1

PrintDialogクラスから印刷オプションを選択した後、複数のドキュメントを直接プリンタに送信しようとしています。

選択したペーパーソースを取得する必要があります。残念ながら、選択したものではなく、プリンタからすべての給紙元を見つけることができます。

これが私のコードのサンプルです(短縮バージョン):

CrystalDecisions.CrystalReports.Engine.ReportDocument document;

//...

PrintDialog pDialog = new PrintDialog();
pDialog.ShowDialog();

document.PrintOptions.PrinterName = pDialog.PrinterSettings.PrinterName;   //OK

//Here I need to set the papersource
//document.PrintOptions.PaperSource = ???

document.printToPrinter(pDialog.PrinterSettings.Copies, false, 0, 0)

私はこれを行うために良いオブジェクトを使用していますか?

注:PageSetupDialogWindows 7を使用しているため、プリンターオプションは提供されません。

4

1 に答える 1

0

私はハンス・パッサントのコメントで私の質問に対する答えを見つけました。彼に感謝します。から

取得するために、私はそれに偽物を設定する必要がありました。 は、紙のソースを直接保持しません。代わりに、を設定します。 これがどのように見えるかです:PaperSourcePrintDialogPrintDocument

PrintDialogPrintDialog.Document.DefaultPageSettings.PaperSource

CrystalDecisions.CrystalReports.Engine.ReportDocument document;

PrintDialog pDialog = new PrintDialog();
pDialog.Document = new System.Drawing.Printing.PrintDocument();
pDialog.ShowDialog();

document.PrintOptions.PrinterName = pDialog.PrinterSettings.PrinterName;
document.PrintOptions.CustomPaperSource = pDialog.Document.DefaultPageSettings.PaperSource;

document.printToPrinter(pDialog.PrinterSettings.Copies, false, 0, 0);
于 2012-11-20T14:31:00.637 に答える