0 Comments

ASP.NET页面打印技术的总结(3)

发布于:2013-08-07  |   作者:广州网站建设  |   已聚集:人围观

利用.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);
 

标签:
飞机