4

我的项目是从表单打印面板

但决议太糟糕了

我查了很多帖子

知道主要问题是显示器和打印机之间的 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 文档

我花了将近一个星期试图解决这个问题>“<

请救救我...

4

1 回答 1

3

我花了将近一个星期试图解决这个问题

即使你再试一周也无法让它发挥作用,因为你走错了路。

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

您知道问题所在,并且知道没有解决方案,您仍在继续尝试。

解决方案: 如果您想在报表上呈现一些数据,我不认为打印面板是解决方案。您应该考虑在form of a report. 比如,考虑制作一份RDLC/Crystal报告并将您想要的数据放在该报告上。简而言之,将报告用于报告目的

于 2013-08-03T17:44:16.837 回答