从表单打印面板时分辨率不佳

时间:2013-08-03 17:32:43

标签: c# printing panel resolution

我的项目是从表单

打印一个面板

但决议太糟糕了

我查了很多帖子

知道主要问题是显示器和打印机之间的DPI差异

我尝试将我的位图设置得很大并以正确的尺寸打印我想要的

但似乎我不能很好地设置它们

分辨率仍然很差,尺寸变化像无法移动

如果我将位图大小设置为大于10k

它将从打印预览对话框中消失

我的代码

    Bitmap MemoryImage;
    public void GetPrintArea(Panel pnl)
    {

        MemoryImage = new Bitmap(9000,9000);
        Rectangle rect = new Rectangle(0,0,9000,9000);
        pnl.DrawToBitmap(MemoryImage, rect);

    }

    void doc_PrintPage(object sender, PrintPageEventArgs e)
    {
        GetPrintArea(flowLayoutPanel1);
        Rectangle pagearea = new Rectangle(0,0,5000, 5000);
        e.Graphics.DrawImage(MemoryImage,pagearea);
    }

    PrintDocument doc = new PrintDocument();
    private void button1_Click(object sender, EventArgs e)
    {
        PrintDocument doc = new PrintDocument();
        doc.PrintPage += new PrintPageEventHandler(doc_PrintPage);
        PrintPreviewDialog dlg = new PrintPreviewDialog();
        PaperSize psize = new PaperSize("A4 300DPI", 2480, 3508);
        doc.PrinterSettings.DefaultPageSettings.PaperSize = psize;
        dlg.Document = doc;
        dlg.ShowDialog();
    }

我想获得面板并将其打印在A4上,其分辨率如打印word文档

我花了将近一周时间尝试解决这个问题>"<

Plz救救我......

1 个答案:

答案 0 :(得分:2)

  

我花了将近一个星期的时间尝试解决这个问题

即使你再试一周也不能让它工作,因为你走错了路。

  

知道主要问题是显示器和打印机之间的DPI差异

你知道这个问题,并且知道没有解决办法,你仍在继续尝试。

<强>解决方案:   如果您想在报表上呈现一些数据,我不认为打印面板是解决方案。您应该考虑在form of a report中打印报告。例如,请考虑制作RDLC/Crystal报告,并将所需数据放在该报告中。简而言之,使用报告进行报告