招生网站建设策划方案,外贸平台有哪些小网站,网站制作需要注意什么,谷歌提交网站通过好友CallHot介绍Lodopweb打印控件。由于是国人开发的#xff0c;故这两天认真了研究下#xff0c;打算在未来的项目中使用。现将学习成果与园友分享。如果存在不足的地方#xff0c;希望您指出。 具体的实现步骤如下#xff1a; 一、准备工作 1.MVC2.0 jQuery1.4.1 开… 通过好友CallHot介绍Lodopweb打印控件。由于是国人开发的故这两天认真了研究下打算在未来的项目中使用。现将学习成果与园友分享。如果存在不足的地方希望您指出。 具体的实现步骤如下 一、准备工作 1.MVC2.0 jQuery1.4.1 开发环境。 2.Lodop web 打印控件官方地址http://mtsoftware.v053.gokao.net/download.html (注国人开发免费软件)。 3.StringTemplateC#开源模板引擎。官方地址http://www.stringtemplate.org。 本文主要给出WEB下打印步骤实现方案具体的技术实现细节请查看官方API。lodop,stringtemplate 官方已给出了详尽的文档说明。 二、MVC2.0使用StringTemplate构造打印模板 StringTemplate 文中简称st。网络上有相关文档介绍st效率还不错。本文将st作为报表打印模板。在实际项目开发中将繁杂的报表打印工作内容部分分配给美工来处理。而开发人员只需提供数据源接口。使用st可以减轻开发人员的工作量。并将报表开发任务分工更细致。给项目带来的好处就不多论了。具体实现如下 1.在MVC2.0项目中引用st核心dll 2.建立st的模板文件template.stst模板专用文件 也可以认为st文件就是一个普通的html文件。该部分主要由美工负责处理比如CSS。 3.在MVC2.0 controller 内建立提供数据源的 JsonResult public JsonResult Print(){//构造打印数据 ListCustomerTest list new ListCustomerTest();for (int i 0; i 100; i) { list.Add(new CustomerTest { CustomerName candy i, CustomerAddress 思明区 i, CustomerPhone 13148484855 i }); list.Add(new CustomerTest { CustomerName linda i, CustomerAddress 湖里区 i, CustomerPhone 13847487545 i }); list.Add(new CustomerTest { CustomerName ellie i, CustomerAddress 海昌区 i, CustomerPhone 1359984665 i }); }//StringTemplate 打印模板文件实际项目中为提高程序效率应将打印模板文件缓存。 string serverPath System.Web.HttpContext.Current.Server.MapPath(~);string path Path.Combine(serverPath, PrintTemplate\); StringTemplateGroup group new StringTemplateGroup(myGroup, path, typeof(TemplateLexer)); StringTemplate st group.GetInstanceOf(template); st.SetAttribute(customer, list);//为打印提供html相关超文本内容。 StringBuilder sb new StringBuilder(); sb.Append(html xmlnshttp://www.w3.org/1999/xhtml langzh-CN); sb.Append(head); sb.Append(meta http-equivContent-Type contenttext/html; charsetutf-8 /); sb.Append(meta http-equivContent-Language contentzh-CN /);string cssContent System.IO.File.ReadAllText(Path.Combine(serverPath, Content\CSS\CSSForPrint.css)); sb.Append(style typetext/css); sb.Append(cssContent); sb.Append(/style); sb.Append(/head); sb.Append(body); sb.Append(st.ToString()); sb.Append( ); sb.Append(/body); sb.Append(/html);return Json(new { success true, data sb.ToString() }, JsonRequestBehavior.AllowGet);} 其中CustomerTest是自定义数据类已经给出详细的注释了。仔细阅读不难理解。 4.MVC2.0 view html head 内加入js 代码 asp:Content IDContent3 ContentPlaceHolderIDHead runatserverscript languagejavascript srcCheckActivX.js/script object idLODOP classidclsid:2105C259-1E0C-4534-8141-A753534CB4CA width0 height0/object script typetext/javascriptfunction prn1_preview(data) { LODOP.PRINT_INIT(打印控件功能演示_Lodop功能_打印表格);//报表标题 LODOP.ADD_PRINT_HTM(50, 300, 330, 300,font color black size 6客户列表/fontfont color blue size 2(制表人张三)/font);//报表内容打印。 LODOP.ADD_PRINT_TABLE(100, 150, 760, 900, data); LODOP.PREVIEW(); }; $(function () { $(#btnPrint).click(function () {var url %Url.Action(Print,Home) %; $.ajax({ type: POST, url: url, cache: false, dataType: json, success: function (result) {if (result.success) { prn1_preview(result.data); } } }); }); })/script/asp:Content 三、运行截图 最后一页打印预览 打印机横向打印 四、注意事项 本文给出的web打印方案需要读者对MVC2.0 、jQuery 、StringTemplate 有一定的了解。另外本例只是在IE下实现了WEB打印如果需要Firefox或其他浏览器下支持web打印请联系Lodop作者。 希望本篇文章可以给您带来帮助如有不足之处欢迎指出谢谢