繁体   English   中英

为什么“打印预览”显示格式正确的页面,而实际上却无法打印?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM