....................................
//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...
本文介绍了一种使用C#实现的报表打印方案,通过设置报表查看器的显示模式和缩放比例,结合图像渲染功能,将报表内容转换为图像并进行多页打印。涉及的技术包括数据绑定、报表加载及外部图片支持。
2983

被折叠的 条评论
为什么被折叠?



