reportViewer To printDocument Print (Single

    技术2022-05-20  25

       ....................................

     

                //this.Class2BindingSource.DataSource = typeof(List<Test0.Class2>);            this.Class2BindingSource.DataSource = print;

                this.reportViewer2.LocalReport.EnableExternalImages = true; //打开图片支持            this.reportViewer2.LocalReport.ReportEmbeddedResource = @"Test0.Report2.rdlc"; //加载报表            this.reportViewer2.SetDisplayMode(DisplayMode.PrintLayout);

                this.reportViewer2.ZoomMode = ZoomMode.Percent;            this.reportViewer2.ZoomPercent = 100;            //this.reportViewer2.Refresh();     

     

     

                string DeviceInfo =  "<DeviceInfo><OutputFormat>EMF</OutputFormat></DeviceInfo>";            Warning[] warnings;            this.reportViewer2.LocalReport.Render("Image", DeviceInfo, CreateStream, out warnings);

                printDocument1.Print();

     

    }

     

     

    //CreateStream Function:

     

            private System.IO.Stream metafile_streams = new System.IO.MemoryStream();

            private System.IO.Stream  CreateStream(string name, string fileNameExtension, Encoding encoding, string mimeType, bool willSeek)        {            System.IO.Stream stream = new System.IO.MemoryStream();            metafile_streams = stream;            return stream;         }

     

     

    //printDocument1 Code:

     

            private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)        {

                metafile_streams.Position = 0;            System.Drawing.Imaging.Metafile pageImage = new System.Drawing.Imaging.Metafile(metafile_streams);

     

                e.Graphics.DrawImage(pageImage, 0, 0);            m_streams.Close();

            }

     

     

    //multi-page Print:

     

    TBC...


    最新回复(0)