繁体   English   中英

在PrintPreviewControl上显示PrintDocument的所有页面

[英]Show all pages of PrintDocument on PrintPreviewControl

我在PrintDocument中创建多个页面并在PrintPreviewControl中显示它们时遇到了麻烦。 我可以很容易地创建一个页面,但是将多个页面串在一起却使我难以理解。

我最终将使用GDI绘制几页的内容,但无法像预期的那样工作。

private PrintDocument doc = new PrintDocument();
private string[] printMe = new string[]{ "page1", "page2", "page3" );
private int pageCount = 0;

private void FormLoad(object sender, EventArgs e)
{
 doc.PrintPage += new PrintPageEventHandler(PrintPage);
 PrintPreviewControl.Document = doc;
}

private void doc_BeginPrint(object sender, PrintEventArgs e){ pageCount = 0; }

private void PrintPage(object sender, PrintPageEventArgs e)
{
 Graphics g = e.Graphics;
 g.DrawString(drawMe[pageCount++], "Lucida Console", Brushes.Black, new Point(20,20));

 e.HasMorePages = (pageCount  printMe.Length );
}

想法是创建3个单独的页面,并在PrintPreview控件中显示它们。 我想念什么?

您的代码段恰好在您分配e.HasMorePages的关键点被弄乱了。 代码中存在一个明显的问题:您需要实现BeginPrint事件处理程序,以将页面计数器重置为0。

我不确定默认情况下如何显示所有页面,但是可以通过设置“ 属性”窗口的“ 布局”部分中的“ Columns属性和/或“ 属性”窗口中的“ Rows属性来在PrintPreviewControl显示多个页面。 行为部分,其值大于1。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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