用C#打印标签

时间:2017-05-22 12:29:31

标签: c# winforms printing

我目前正在尝试学习如何在C#中使用打印功能,当我尝试在Windows窗体应用程序中打印标签时出现问题。

我想要做的是,当我单击按钮1时,我想将标签中的文本(或绘制它们的图像)放入可以打印的文档中。 我还是编程的新手,所以这个打印功能对我来说非常混乱。

private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
    e.Graphics.DrawString(label1.Text, label2.Text, label3.Text, label4.Text, label5.Text, label6.Text, label7.Text, label8.Text, label9.Text);
}

private void button1_Click(object sender, EventArgs e)
{
    this.printDocument1.PrintPage += new
    System.Drawing.Printing.PrintPageEventHandler
    (this.printDocument1_PrintPage);
}

private void PrintPage(object o, PrintPageEventArgs e)
{
    System.Drawing.Image img = System.Drawing.Image.FromFile("C://gul.PNG");
    Point loc = new Point(10, 10);
    e.Graphics.DrawImage(img, loc);
}

为了能够做到这一点,我需要做些什么?

1 个答案:

答案 0 :(得分:0)

使用Form.DrawToBitmap()方法。

例如这样的表格:

scr

按下打印按钮时:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
    {
        var pd = new PrintDocument();             
        pd.PrintPage+=(s,ev)=>
        {
            var bmp = new Bitmap(Width, Height);
            this.DrawToBitmap(bmp, new Rectangle(Point.Empty, this.Size));
            ev.Graphics.DrawImageUnscaled(bmp, ev.MarginBounds.Location);
            ev.HasMorePages=false;
        };

        var dlg = new PrintPreviewDialog();
        dlg.Document=pd;            
        dlg.ShowDialog();
    }


}

结果:

print