毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> net技术 >> 正文

RDLC直接打印样式和web页面显示的不一样

更新时间:2012-6-25:  来源:毕业论文

VS2010 RDLC直接打印,样式和web页面显示的不一样,求解!!!
其实reportviewer是有打印按钮的,但是,现在要求做自定义打印的按钮。我在网上找了直接打印rdlc的代码,但是,现在,页面显示的效果和打印出来的效果完全不一样。求解。
#region 打印
        private PrintDocument printDocument1 = new PrintDocument();//打印窗体
        string ktitle = string.Empty;

        //声明一个Stream对象的列表用来保存报表的输出数据
        //LocalReport对象的Render方法会将报表按页输出为多个Stream对象。
        private List<Stream> m_streams = new List<Stream>();
        //用来提供Stream对象的函数,用于LocalReport对象的Render方法的第三个参数。
        private Stream CreateStream(string name, string fileNameExtension,
           Encoding encoding, string mimeType, bool willSeek)
        {
            //如果需要将报表输出的数据保存为文件,请使用FileStream对象。
            Stream stream = new MemoryStream();
            m_streams.Add(stream);
            return stream;
        }

        protected void btnPrint_Click1(object sender, EventArgs e)
        {
            try
            {
                //LocalReport report = new LocalReport();
                //设置需要打印的报表的文件名称。
                //report.ReportPath = @"Print/reportOrderPrint.rdlc";
                //创建要打印的数据源
                //ReportDataSource source = new ReportDataSource("OrderDataset", ObjectDataSource1);
                //report.DataSources.Add(source);
                //刷新报表中的需要呈现的数据
                //report.Refresh();
                LocalReport report = this.rvOrderPrint.LocalReport;
                string deviceInfo =
                     "<DeviceInfo>" +
                    "  <OutputFormat>EMF</OutputFormat>" +
                     "  <PageWidth>29.7cm</PageWidth>" +
                    "  <PageHeight>21cm</PageHeight>" +
                    "  <MarginTop>0.5cm</MarginTop>" +
                    "  <MarginLeft>0.5cm</MarginLeft>" +
                      "  <MarginRight>0.5cm</MarginRight>" +
                     "  <MarginBottom>0.5cm</MarginBottom>" +
                   "</DeviceInfo>";
                Warning[] warnings;
                //将报表的内容按照deviceInfo指定的格式输出到CreateStream函数提供的Stream中。
                report.Render("Image", deviceInfo, CreateStream, out warnings);
            }
            catch (Exception ex)
            {
                log.Error(ex.Message);
            }
            Print();//打印事件
        }

        //用来记录当前打印到第几页了  
        private int m_currentPageIndex;
        private void Print()
        {
            m_currentPageIndex = 0;
            if (m_streams == null || m_streams.Count == 0)
                return;
            //声明PrintDocument对象用于数据的打印
            PrintDocument printDoc = new PrintDocument();
            //指定需要使用的打印机的名称,使用空字符串""来指定默认打印机 
            //printDoc.PrinterSettings.PrinterName = "";
            //判断指定的打印机是否可用 
            //if (!printDoc.PrinterSettings.IsValid)
            //{
            //    MessageBox.Show("Can't find printer");
            //    return;
            //}
            //声明PrintDocument对象的PrintPage事件,具体的打印操作需要在这个事件中处理。 

[1] [2] 下一页

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。