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)

我是否使用好对象来做到这一点?

注意:PageSetupDialog由于我使用的是 Windows 7,因此不提供打印机选项。

4

1 回答 1

0

我通过 Hans Passant 的评论找到了我的问题的答案。感谢他。

为了PaperSource从中获取PrintDialog,我必须为它设置一个假PrintDocument的。不直接保留纸张来源

PrintDialog相反,它设置PrintDialog.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 回答