我正在尝试从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。
答案 0 :(得分: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);