实现方式是通过将RDLC本地报表转化成Stream流,再将流转化成图片,我这用到的是Metafile对象。通过打印Metafile对象来实现直接用代码打印RDLC报表。
出现的问题如下。
原报表格式加入为:1 2 3 4 5 6 7 8
打印效果为 第一页:1 2 3 4 5
第二页 6 7 8
会出现打印2页的效果
代码如下,通过本地报表的方法。
//处理报表,并使用回调函数提供的流以指定的格式呈现报表
localReport.Render("Image", CreateDeviceInfo(), CreateStream, out warnings);
private string CreateDeviceInfo()
{
StringBuilder deviceInfo = new StringBuilder();//创建驱动信息格式
deviceInfo.Append("<DeviceInfo>");
deviceInfo.Append(" <OutputFormat>EMF</OutputFormat>");
//deviceInfo.Append(" <PageWidth>8.5in</PageWidth>");
//deviceInfo.Append(" <PageHeight>11in</PageHeight>");
//deviceInfo.Append(" <MarginTop>0.25in</MarginTop>");
//deviceInfo.Append(" <MarginLeft>0.25in</MarginLeft>");
//deviceInfo.Append(" <MarginRight>0.25in</MarginRight>");
//deviceInfo.Append(" <MarginBottom>0.25in</MarginBottom>");
deviceInfo.Append(" </DeviceInfo>");
return deviceInfo.ToString();
}
private Stream CreateStream(string name, string fileNameExtension, Encoding encoding, string mimeType, bool willSeek)
{
//Stream stream = new FileStream(name + "." + fileNameExtension, FileMode.Create);
Stream stream = new MemoryStream();
_streams.Add(stream);
return stream;
}
这两个方法为Render方法的参数。求如何解决打印2页问题
3 个解决方案
#1
求解决啊
#3
已经解决了,不过还是谢谢版主,通过调整PageWidth和PageHeight来设定大小。可以调整页码,如果过宽或者过高都会将多余的部分放到第二页打印。
#1
求解决啊
#2
#3
已经解决了,不过还是谢谢版主,通过调整PageWidth和PageHeight来设定大小。可以调整页码,如果过宽或者过高都会将多余的部分放到第二页打印。