我如何才能正确打印文档

时间:2013-12-25 19:35:22

标签: c# asp.net

我遇到了一个简单的问题,希望有人帮我解决。 加载表格并按下“打印”按钮后,该过程成功完成并打印到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;
    }
}

1 个答案:

答案 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();
    }
}