标签未显示在打印中

时间:2017-10-18 16:12:04

标签: windows winforms c#-4.0 panel

我使用下面的代码来打印Windows窗体面板。

private void button1_Click(object sender, EventArgs e)
        {
            System.Drawing.Printing.PrintDocument doc = new System.Drawing.Printing.PrintDocument();
            doc.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(Doc_PrintPage);
            doc.Print();
        }

private void Doc_PrintPage(object sender, PrintPageEventArgs e)
        {
            Panel grd = new Panel();
            Bitmap bmp = new Bitmap(panel2.Width, panel2.Height, panel2.CreateGraphics());
            panel2.DrawToBitmap(bmp, new Rectangle(0, 0, panel2.Width, panel2.Height));
            RectangleF bounds = e.PageSettings.PrintableArea;
            float factor = ((float)bmp.Height / (float)bmp.Width);
            e.Graphics.DrawImage(bmp, bounds.Left, bounds.Top, bounds.Width, factor * bounds.Width);

            bmp.Save("test12.jpg");
        }

现在从上面的代码中,当我点击按钮时,打印功能将被调用,但它排除了标签。我附上图片供您参考。第一张图片是我的UI设计。 enter image description here,当我使用打印功能时,它会删除标签值,如您在其他图像中看到的那样。 enter image description here我使用了粉红色的rectagleshap控件,我在上面显示标签。我认为标签可能会被送回,但是当我使用正面背面时,它也不会出现。

2 个答案:

答案 0 :(得分:1)

你能在这里试试这个吗我用这个来捕捉整个屏幕,它曾经是活动窗口,就像是屏幕截图或截图。

private void Doc_PrintPage(object sender, PrintPageEventArgs e)
{
    Bitmap bitmap = new Bitmap(panel2.Width, panel2.Height);
    Graphics graphics = Graphics.FromImage(bitmap as Image);
    graphics.InterpolationMode = InterpolationMode.Default;
    graphics.CopyFromScreen(0, 0, 0, 0, bitmap.Size);
    bitmap.Save(pathDownload + filename + ".jpeg", ImageFormat.Jpeg);                                                                                                                           
    bmp.Save("test12.jpg");
}

答案 1 :(得分:0)

在我的情况下,标签显示回矩形,所以我添加了一个标签并将其设置为前面。谢谢你的帮助。