【发布时间】:2015-08-04 22:05:53
【问题描述】:
我在多页打印信息时遇到问题,目前它会导致无限循环,我有几个小时在网上冲浪以寻求解决方案,但不清楚。
static void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
Graphics graphic = e.Graphics;
SolidBrush brush = new SolidBrush(Color.Black);
Font font = new Font("Courier New", 12);
e.PageSettings.PaperSize = new PaperSize("A4", 850, 1100);
float pageWidth = e.PageSettings.PrintableArea.Width;
float pageHeight = e.PageSettings.PrintableArea.Height;
float fontHeight = font.GetHeight();
int startX = 40;
int startY = 30;
int offsetY = 0;
for (int i = 0; i < 100; i++)
{
graphic.DrawString("Line: " + i, font, brush, startX, startY + offsetY);
offsetY += (int)fontHeight;
if (offsetY >= pageHeight)
{
e.HasMorePages = true;
offsetY = 0;
return;
}
else
{
e.HasMorePages = false;
}
}
}
有什么想法吗? 谢谢
【问题讨论】:
-
“无限循环”是什么意思?你为什么这么认为?
-
返回; e.HasMorePages = true;生成无限数量的打印页面。
-
为什么将
e.HasMorePages设置为true?你想达到什么目标? -
请尝试:filedropper.com/windowsformsapplication2 我想打印
99行,但每页只能打印55行,然后我需要使用另一页打印其余行。我尝试使用e.HasMorePages = true;命令,但它会导致无限打印循环。
标签: c# winforms infinite-loop printdocument