如何将带有图片框的面板缩放到打印页面 [英] How to scale panel with picture box into print page

查看:77
本文介绍了如何将带有图片框的面板缩放到打印页面的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在打印页面后面放大图片框,文本框和标签,但是只放大面板而不是图片框,文本框和标签。你能帮我完成吗。



我尝试过的事情:



I want to make scale up the panel with picture box, textbox, and label following the print page but scale up only panel not with picture box, textbox, and label. Can you help me to finish it.

What I have tried:

public partial class Form1 : Form
   {
       Bitmap memoryimg;
       PrintPreviewDialog printprvw = new PrintPreviewDialog();
       PrintDocument printdoc = new PrintDocument();
       Panel pannel;

       public Form1()
       {
           InitializeComponent();
       }
       private void button1_Click(object sender, EventArgs e)
       {
           panel1.Size = new Size(794, 1123);
           Print(this.panel1);
       }

       private void Print(Panel pn1)
       {
           PrinterSettings ps = new PrinterSettings();
           pannel = pn1;
           getprintarea(pn1);
           printprvw.Document = printdoc;
           printdoc.PrintPage += new PrintPageEventHandler(pntdoc_printpage);
           printprvw.ShowDialog();
       }

       private void pntdoc_printpage (object sender, PrintPageEventArgs e)
       {
           Rectangle pagearea = e.PageBounds;
           e.Graphics.DrawImage(memoryimg, 0,0);
       }

       private void getprintarea(Panel pn1)
       {
         memoryimg = new Bitmap(pn1.Width, pn1.Height);
         pn1.DrawToBitmap(memoryimg, new Rectangle(0,0,pn1.Width,pn1.Height));
       }

   }
}

推荐答案

namespace PrintingWFP
{
    public partial class Form1 : Form
    {
        Bitmap memoryimg;
        PrintPreviewDialog printprvw = new PrintPreviewDialog();
        PrintDocument printdoc = new PrintDocument();
        Panel pannel;
        public Form1()
        {
            InitializeComponent();
        }

        private void Print(Panel pn1)
        {
            PrinterSettings ps = new PrinterSettings();
            pannel = pn1;
            getprintarea(pn1);
            printprvw.Document = printdoc;
            printdoc.PrintPage += new PrintPageEventHandler(pntdoc_printpage);
            printprvw.ShowDialog();
            panel1.Size = new Size(395, 642);
            panel1.Visible = true;
        }

        private void pntdoc_printpage(object sender, PrintPageEventArgs e)
        {
            Rectangle pagearea = e.PageBounds;
            e.Graphics.DrawImage(memoryimg, 0, 0);
            PrintPreviewDialog pre = new PrintPreviewDialog();
         
        }

        private void getprintarea(Panel pn1)
        {
            memoryimg = new Bitmap(pn1.Width, pn1.Height);
            pn1.DrawToBitmap(memoryimg, new Rectangle(0, 0, pn1.Width, pn1.Height));
        }

        private void button1_Click(object sender, EventArgs e)
        {
            panel1.Visible = false;
            panel1.Size = new Size(794, 1123);
            Print(this.panel1);
        }


这篇关于如何将带有图片框的面板缩放到打印页面的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆