C#面板低质量打印

时间:2014-12-18 23:06:27

标签: c# winforms printing

我知道以前曾经问过,但我无法得到答案。我知道我的显示器的分辨率低于打印机的分辨率,但无论如何。我有一个包含标签和图片框的面板。当我在纸上打印时,它具有高质量的屏幕捕获功能。我无法找到一种方法来获得合适的印刷品。这是我的代码:

在我的构造函数中:

printdoc1.PrintPage += new PrintPageEventHandler(printdoc1_PrintPage);
printdoc1.DefaultPageSettings.PaperSize = new PaperSize("", 275, 850);

事件处理者和方法

public void GetPrintArea(Panel pnl)
    {
        MemoryImage = new Bitmap(pnl.Width, pnl.Height);
        Rectangle rect = new Rectangle(0, 0, pnl.Width, pnl.Height);
        pnl.DrawToBitmap(MemoryImage, new Rectangle(0, 0, pnl.Width, pnl.Height));

    }
    protected override void OnPaint(PaintEventArgs e)
    {
        if (MemoryImage != null)
        {
            e.Graphics.DrawImage(MemoryImage, 0,0);
            base.OnPaint(e);     
        }
    }
   void printdoc1_PrintPage(object sender, PrintPageEventArgs e)
    {
        Rectangle pagearea = e.PageBounds;
        e.Graphics.DrawImage(MemoryImage, 0,0);          
    }

最后,我的打印按钮内部是什么:

GetPrintArea(panelImpresion);
previewdlg.Document = printdoc1;
previewdlg.ShowDialog();

0 个答案:

没有答案