領測軟件測試網
利用.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); |
文章來源于領測軟件測試網 http://www.kjueaiud.com/