我第一种写法打印一张可以,但是循环打印两张的时候,打停机一直提示正在,打印,然后就没反应了!!!请问哪位大神
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawImage(pictureBox1.Image, 10, 20);
}
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
string bh = dt.Rows[i]["开剪布号"].ToString();
Bitmap[] maps = new Bitmap[2];
maps[0] = (Bitmap)zftuhxzh.GetDimensionalCode(bh);//字符串转二维码
maps[1] = (Bitmap)zftuhxzh.sss("成品号:"+bh, textBox40.Font);//字符串转图片
pictureBox1.Image = zftuhxzh.MergerImg(maps);//两张图片拼接
e.Graphics.DrawImage(pictureBox1.Image, 10, 20);
}
}
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawImage(pictureBox1.Image, 10, 20);
}
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
string bh = dt.Rows[i]["开剪布号"].ToString();
Bitmap[] maps = new Bitmap[2];
maps[0] = (Bitmap)zftuhxzh.GetDimensionalCode(bh);//字符串转二维码
maps[1] = (Bitmap)zftuhxzh.sss("成品号:"+bh, textBox40.Font);//字符串转图片
pictureBox1.Image = zftuhxzh.MergerImg(maps);//两张图片拼接
e.Graphics.DrawImage(pictureBox1.Image, 10, 20);
}
}
bh,maps,pictureBox1有没有值?
e.HasMorePages = true;
来控制是否打印下一页你的多页数据的产生,要写成一个方法,按传入的页号,每次返回一页数据,或直接绘制在传入的 Graphics 中
我在for循环里加上e.HasMorePages = true;这句话之后,他就无限循环打印,停不下来了!!!!
int printPage=0;
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
var i=printPage;
string bh = dt.Rows[i]["开剪布号"].ToString();
Bitmap[] maps = new Bitmap[2];
maps[0] = (Bitmap)zftuhxzh.GetDimensionalCode(bh);//字符串转二维码
maps[1] = (Bitmap)zftuhxzh.sss("成品号:"+bh, textBox40.Font);//字符串转图片
pictureBox1.Image = zftuhxzh.MergerImg(maps);//两张图片拼接
e.Graphics.DrawImage(pictureBox1.Image, 10, 20);
printPage++;
if ( dt.Rows.Count <= printPage)
{
e.HasMorePages = false;
}
else
{
e.HasMorePages = true; //重复调用PrintPage事件
}
}