【问题标题】:How can i set PrintPriviewDialog papersize to a5 in c# codebehind?如何在后面的 c# 代码中将打印预览对话框纸张大小设置为 a5?
【发布时间】:2012-09-03 07:13:40
【问题描述】:

我有一个 Windows 窗体应用程序,它带有一个包含面板的简单窗体。 我已将面板大小设置为:560、579 像素 我已经这样设置了打印文档的大小:

System.Drawing.Printing.PaperSize a = new System.Drawing.Printing.PaperSize("A5 (148 x 210 mm)", 584, 827);
printDocument1.PrinterSettings.DefaultPageSettings.PaperSize = a;

现在我希望 printpreviewdialoge 页面大小为 a5 或至少与我的打印文档大小相同并适合它,我该如何实现?

    private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
    {
        Bitmap b = new Bitmap(pnlPrint.Width, pnlPrint.Height);
        pnlPrint.DrawToBitmap(b, new System.Drawing.Rectangle(0, 0, pnlPrint.Width, pnlPrint.Height));
        e.Graphics.DrawImage(b,0,0);
    }

    private void Print()
    {
    PrintPreviewDialog printPreviewDialog1 = new PrintPreviewDialog();
    var paperSize = printDocument1.PrinterSettings.PaperSizes.Cast<PaperSize>().FirstOrDefault(e => e.PaperName == "A5");
    printDocument1.PrinterSettings.DefaultPageSettings.PaperSize = paperSize; 
    printPreviewDialog1.Document = printDocument1;

    printPreviewDialog1.ShowDialog();

    }

【问题讨论】:

    标签: c# winforms printing


    【解决方案1】:

    您可以从PrintDocument 对象的PrinterSettings 属性中获取A5 PaperSize 对象。它有一个PaperSizes 属性,用于保存所选打印机的所有纸张尺寸。您可以使用 LINQ 找到您想要的。例如:

    var paperSize = printDoc.PrinterSettings.PaperSizes.Cast<PaperSize>().FirstOrDefault(e => e.PaperName == "A5");
    printDoc.PrinterSettings.DefaultPageSettings.PaperSize = paperSize;
    

    【讨论】:

    • 谢谢,但我有问题! printpriviewdialoge 不适合我已将其绘制到位图的面板:( 我添加了完整的代码,printpriviewdialoge 是钢 a4
    • 我的面板在 print priview 的顶角,其余的是白色的,我希望其余的适合我的面板图像
    • 好的,不清楚你在问什么。您希望纸张大小为特定大小,还是希望打印预览对话框具有特定大小?
    • 我希望打印预览对话框为 a5 大小,并且我希望图像适合打印预览对话框,清楚吗?
    • 您希望屏幕上的对话框为 a5 大小?我真的不认为那是你想要的。但是,您可以使用PrintDialog.ClientSize 属性设置对话框的大小,并使用PrintDialog.Location 属性设置它的位置。
    【解决方案2】:

    只需从以下链接查看我的答案:

    Printing Envelopes from C#

    谢谢。

    【讨论】:

      猜你喜欢
      • 2017-10-19
      • 1970-01-01
      • 2012-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多