[英]Why does Print Preview show properly formatted pages that won't actually print?
我正在编写一个使用Visual Studio 2008 / C#打印格式数据的应用程序。 我已经按照想要显示的方式格式化了数据。 我正在使用两个打印文档和事件处理程序,因为报表的首页所载格式要求与第二页至第二页不同。
“打印预览”显示了我尝试打印的所有页面的格式正确的数据。 但是,第2到N页实际上不会打印。
我已逐步完成代码,并且数据已正确传递到事件处理程序。 这是调用第二个打印文档的事件处理程序的代码块。 我究竟做错了什么?
// First page print limit has been reached. Do we
// still have unprinted items in the arraylist? Call the second
// print handler event and print those items.
if (((alItemsToPrint.Count) - iItemPrintedCount) > 0)
{
// Getting a look at my formating
PrintPreviewDialog printPreview2 = new PrintPreviewDialog();
printPreview2.Document = ItemsPrintDocument;
printPreview2.ShowDialog();
printPreview2.Dispose();
// Print item overflow pages
ItemsPrintDocument.Print();
// Release the resources consumed by this print document
ItemsPrintDocument.Dispose();
}
谢谢大家的宝贵时间。
要打印文档,请使用:
PrintDocument.Print
预览时,将PrintDocument分配给PrintPreviewDialog
printPreview2.Document = ItemsPrintDocument;
当您显示PrintPreviewDialog时,它将PrintDocument的PrintController替换为PreviewPrintController并调用PrintDocument.Print。
此操作将在每页上生成一个图像(元文件)列表。
接下来,它将在PrintDocument上还原原始的PrintController并显示图像。
当您按下PrintPreviewDialog上的PrintButton时,它将使用原始PrintController调用PrintDocument.Print。
请注意,对于正确的行为,您可以使用BeginPrint的PrintDocument事件将vars初始化为新的PrintDocument.Print。
如果使用PrintPreviewDialog,则不需要调用PrintDocument.Print。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.