我遇到了一个简单的问题,希望有人帮我解决。 加载表格并按下“打印”按钮后,该过程成功完成并打印到pdf文件。 首先按下查看按钮,然后按下没有打印任何pdf文件的打印按钮,问题就开始了。
我正在使用PrintDocument和PrintPreviewControl来处理数据,如下所示:
预览PrintPreviewControl数据的第一个按钮
private void ViewBt_Click(object sender, EventArgs e)
{
counter = 1;
lastindex = 0;
PrintDocument Pages = new PrintDocument();
Pages.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(Pages_PrintPage);
printPreviewControl1.Document = Pages;
printPreviewControl1.InvalidatePreview();
}
打印数据的第二个按钮
private void PrinBt_Click(object sender, EventArgs e)
{
if (PagePrintSetup.ShowDialog() == DialogResult.OK)
{
PrintDocument Pages = new PrintDocument();
Pages.DefaultPageSettings.PrinterSettings = PagePrintSetup.PrinterSettings;
Pages.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(Pages_PrintPage);
Pages.Print();
}
}
打印页码
int counter = 1;
int i;
int lastindex = 0;
private void Pages_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
for ( i= lastindex; i < t.Rows.Count; i++)
{
e.Graphics.DrawString(t.Rows[i]["Name"].ToString(), new Font("arial", 20), new SolidBrush(Color.Black), 150, counter * 25);
lastindex = (i + 1);
counter++;
if (i != 0 && i % 45 == 0)
break;
}
if (i < t.Rows.Count)
{
counter = 1;
e.HasMorePages = true;
}
}
答案 0 :(得分:0)
只需添加简单的线条即可重复使用paint事件来打印文档..
counter = 1;
lastindex = 0;
private void PrinBt_Click(object sender, EventArgs e)
{
if (PagePrintSetup.ShowDialog() == DialogResult.OK)
{
counter = 1;
lastindex = 0;
PrintDocument Pages = new PrintDocument();
Pages.DefaultPageSettings.PrinterSettings = PagePrintSetup.PrinterSettings;
Pages.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(Pages_PrintPage);
Pages.Print();
}
}