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