利用.Net组件打印
利用.Net组件
◆优点:这种打印方式对于格式变化大,数据量小的应用来说非常合适。
◆缺点:
◆需要客户端安.Net framework组件。
◆Xml的解析上,如果文件较大速度上不是很理想。
◆页面首次加载时会有明显的延时。
广州网站建设,网站建设,广州网页设计,广州网站设计
使用XSL和XSLT转换Xml
◆XSL:扩展样式表语言,可以通过它来把Xml转换为其他的文本格式。
◆XSL转换包括发现或者选择一个模式匹配,通过使用XPath选择一个结果集,然后对结果集中的每一项,为这些匹配定义结果输出。
◆XSL是一个功能强大的工具,可以把Xml转换成任何你想要的格式。
【参考代码】
XslTransform xslt = new XslTransform(); xslt.Load(Server.MapPath( "StudentsToHTML.xsl") ); XPathDocument XDoc = new XPathDocument(Server.MapPath( "Students.Xml" )); XmlWriter writer = new XmlTextWriter( server.MapPath("Students.html"), System.Text.Encoding.UTF8 ); xslt.Transform( XDoc, null, writer ); writer.Close(); Response.Redirect("Students.html"); |
利用ActiveX控件打印
利用第三方控件
◆自己开发控件。这种方式很多商用软件采用这种方式,写成控件后已经无所谓是在web中使用还是应用程序中使用了。
优点:打印方式非常灵活,基本上程序能做到的web也能做得到。
缺点:客户端需要安装组件,部署不是很方便。
广州网站建设,网站建设,广州网页设计,广州网站设计
使用水晶报表
◆用户仅需要Web 浏览器就可以查看报表。 ◆报表查看器控件可以是应用程序中众多控件之一。 ◆与报表轻松交互 ◆用户可将报表导出为Microsoft word 和Excel 格式,以及PDF、HTML 和Crystal Reports for visual Studio .Net格式。 ◆可以使用报表控件直接打印
【实例代码】
//水晶报表的填充,省略连接代码 myReport ReportDoc = new myReport(); ReportDoc.SetDataSource(ds); Crv.ReportSource = ReportDoc; //输出为指定类型文件 CrystalDecisions.Shared.DiskFileDestinationOptions DiskOpts = new CrystalDecisions.Shared.DiskFileDestinationOptions(); ReportDoc.ExportOptions.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile; string strFileName = server.MapPath("Output"); switch (ddlFormat.SelectedItem.Text) { case "Rich Text (RTF)": ReportDoc.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.RichText; DiskOpts.DiskFileName =strFileName + ".rtf"; break; case "Portable Document (PDF)": ReportDoc.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat; DiskOpts.DiskFileName = strFileName + ".pdf"; break; case "MS word (DOC)": ReportDoc.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.WordForWindows; DiskOpts.DiskFileName = strFileName + ".doc"; break; case "MS excel (XLS)": ReportDoc.ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.Excel;// DiskOpts.DiskFileName = strFileName + ".xls"; break; default: break; } ReportDoc.ExportOptions.DestinationOptions = DiskOpts; ReportDoc.Export(); //打印 // 指定打印机名称 string strPrinterName; strPrinterName = @"Canon Bubble-Jet BJC-210SP"; // 设置打印页边距 PageMargins margins; margins = ReportDoc.PrintOptions.PageMargins; margins.bottomMargin = 250; margins.leftMargin = 350; margins.rightMargin = 350; margins.topMargin = 450; ReportDoc.PrintOptions.ApplyPageMargins(margins); //应用打印机名称 ReportDoc.PrintOptions.PrinterName = strPrinterName; // 打印 // 打印报表。将startPageN 和endPageN // 参数设置为0 表示打印所有页。 ReportDoc.PrintToPrinter(1, false,0,0); |