【问题标题】:Bad resolution when print panel from form从表单打印面板时分辨率不佳
【发布时间】:2013-08-04 19:41:35
【问题描述】:

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

但分辨率太差了

我查了很多帖子

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

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

请救救我...

【问题讨论】:

  • 网上有很多关于创建与屏幕相同 DPI 的表单图像的参考资料;但是您想将图像放大以整页打印,对吗?
  • 只要确保面板上的一个像素变成纸上的一个像素。这将是锋利的。但是,是的,需要放大镜。你当然可以把它打印得更大。但是你需要更长的手臂才能让它看起来很锋利。大约长6倍。您需要得出的结论是,打印面板并不是一个好主意。
  • @Ghashgul 你没有接受我的回答吗?我看到了。
  • 我以为我做到了,也许我点击了两次,我的错,谢谢你的回答

标签: c# printing panel resolution


【解决方案1】:

我花了将近一周的时间试图解决这个问题

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多