`

在MVC2.0使用Lodop为WEB打印提出完美解决方案

 
阅读更多
在MVC2.0使用Lodop为WEB打印提出完美解决方案
    通过好友CallHot介绍Lodopweb打印控件。由于是国人开发的,故这两天认真了研究下,打算在未来的项目中使用。现将学习成果与园友分享。如果存在不足的地方,希望您指出。

具体的实现步骤如下:

     一、准备工作

        1.MVC2.0 + jQuery1.4.1 开发环境。

        2.Lodop web 打印控件,官方地址:http://mtsoftware.v053.gokao.net/download.html  (注:国人开发,免费软件)。

        3.StringTemplate,C#开源模板引擎。官方地址:http://www.stringtemplate.org。

     本文主要给出WEB下打印步骤实现方案,具体的技术实现细节,请查看官方API。lodop,stringtemplate 官方已给出了详尽的文档说明。



    二、MVC2.0使用StringTemplate构造打印模板

       StringTemplate 文中简称st。网络上有相关文档介绍st效率还不错。本文将st作为报表打印模板。在实际项目开发中将繁杂的报表打印工作内容,部分分配给美工来处理。而开发人员只需提供数据源接口。使用st可以减轻开发人员的工作量。并将报表开发任务分工更细致。给项目带来的好处就不多论了。具体实现如下:

      1.在MVC2.0项目中引用st核心dll:



      2.建立st的模板文件,template.st(st模板专用文件):



也可以认为st文件就是一个普通的html文件。该部分主要由美工负责处理,比如CSS。

       3.在MVC2.0 controller 内建立提供数据源的 JsonResult:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
public JsonResult Print()
       {
           //构造打印数据
           List<CustomerTest> list = new List<CustomerTest>();
           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 xmlns='http://www.w3.org/1999/xhtml' lang='zh-CN'>");
           sb.Append("<head>");
           sb.Append(@"<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />");
           sb.Append(@"<meta http-equiv='Content-Language' content='zh-CN' />");
           string cssContent = System.IO.File.ReadAllText(Path.Combine(serverPath, @"Content\CSS\CSSForPrint.css"));
           sb.Append(@"<style type='text/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 代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<asp:Content ID="Content3" ContentPlaceHolderID="Head" runat="server">
    <script language="javascript" src="CheckActivX.js"></script>
    <object id="LODOP" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" width="0"
        height="0">
    </object>
    <script type="text/javascript">

        function prn1_preview(data) {
            LODOP.PRINT_INIT("打印控件功能演示_Lodop功能_打印表格");
            //报表标题
            LODOP.ADD_PRINT_HTM(50, 300, 330, 300,
                      "<font color ='black' size ='6'>客户列表</font><font 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>
分享到:
评论

相关推荐

    网页打印控件 Lodop 2.0 专业精致版

    网页打印控件 Lodop 是一款高效且专业的打印解决方案,尤其适用于网页打印场景。Lodop 2.0 专业精致版在前代的基础上进行了优化,提供了更强大的功能和更精细的用户体验,旨在满足企业级用户的高要求。 Lodop 打印...

    Lodop实现Web打印控件实例

    Lodop是一款高效、灵活的Web打印控件,它的名称来源于“load or print”,旨在为B/S(浏览器/服务器)系统提供更自由的打印解决方案。与传统的Web打印控件不同,Lodop能让用户在打印时选择性地查看和打印内容,开发...

    使用lodop进行html打印

    在实际应用中,开发者可以根据具体需求,灵活组合使用Lodop的这些接口,以实现各种定制化的打印功能。对于大型项目,还可以通过封装成自定义的打印组件,以提高代码的复用性和可维护性。 总的来说,Lodop是一个强大...

    在UniApp中集成Lodop实现APP打印标签功能-库文件源代码

    在本资源中,我们将介绍如何使用Lodop在UniApp中打印标签,包括如何定义标签样式、打印内容和打印方式等。此外,我们还将提供一些示例代码和相关的技术资料,帮助读者更好地理解和掌握该技术的实现原理和应用场景。 ...

    lodop6.0 web打印

    【lodop6.0 web打印】是一个专注于网页打印解决方案的技术组件,主要由"Lodop6.032"和"Lodop6.0Notebook"两个核心文件组成。这个技术主要用于解决网页上复杂的打印需求,提供了高效、稳定且功能丰富的打印服务。 ...

    lodop4.0 web打印控件

    Lodop4.0 Web打印控件是用于网页端实现打印功能的一款强大工具,它使得开发者无需依赖特定的打印机驱动程序,就能在用户的浏览器上轻松完成文档、报表等各类内容的打印工作。Lodop4.0是其最新的版本,旨在提供更稳定...

    Lodop6 WEB打印插件

    Lodop6 WEB打印插件是一款在网页上实现高效、便捷打印功能的控件,它为开发者和用户提供了丰富的打印解决方案。这款插件以其易用性、稳定性和强大的功能著称,是许多企业和个人在网页打印领域中的首选工具。下面我们...

    lodop Web打印控件 6.0和4.0两个版本有水印

    总的来说,Lodop作为一款成熟的Web打印控件,无论是6.0.1.2还是4.0版本,都在解决网页打印问题上提供了高效且灵活的解决方案。对于水印的添加和套打的实现,更是显示了其在打印定制化方面的强大能力。开发者可以根据...

    lodop5.0web打印控件使用手册

    《Lodop5.0 Web打印控件使用手册》详细解析 在信息技术高速发展的今天,Web打印技术在各种业务场景中扮演着越来越重要的角色。Lodop5.0是一款高效、便捷的Web打印控件,它能帮助开发者轻松实现网页上的打印功能,...

    基于Lodop控件的Web打印

    【基于Lodop控件的Web打印】是一种高效且便捷的网页打印解决方案,它使得用户无需依赖特定的报表工具,可以直接在Web页面上实现“所见即所得”的打印效果。Lodop控件是一个专为网页打印设计的ActiveX插件,通过在...

    lodopweb打印控件

    LodopWeb打印控件是一款高效且易用的网页打印解决方案,专为解决Web应用程序中的打印需求而设计。这款控件以其强大的功能和广泛的兼容性在IT行业中受到广泛关注。以下将详细解析LodopWeb打印控件的核心知识点: 1. ...

    WEB打印控件Lodop完整实例

    总之,Lodop作为一款强大的WEB打印控件,为开发者提供了全面的打印解决方案。通过这个完整的测试实例,用户不仅可以深入了解Lodop的各项功能,还可以快速上手,将Lodop整合到自己的网页应用中,提升用户体验,提高...

    基于Lodop打印php网页小票打印实例

    Lodop是一款高效的小票和标签打印解决方案,它提供了一种简便的方法来从网页中直接进行打印操作,尤其适用于PHP开发环境。 首先,我们需要理解Lodop的基本概念。Lodop是一个基于ActiveX和JavaScript技术的浏览器...

    WEB 打印控件Lodop,全兼容各浏览器chrome,ie,360

    WEB打印控件Lodop是一种高效且易于使用的打印解决方案,专为解决网页打印问题而设计。它具有全浏览器兼容性的特点,支持包括Chrome、IE(Internet Explorer)以及360浏览器在内的多种主流浏览器,极大地拓宽了其应用...

    Lodop6.0web打印控件及技术手册

    打印控件Lodop是一款专业共享软件,公开发行版本没有功能限制,多数用户可免费长期使用,仅如下功能需要注册使用权: 1、 (不经过预览的)“直接打印”功能; 2、 “导出数据到Excel文件” 功能; 其设计目标是简单...

    lodop web 打印组件

    Lodop是一款专业的WEB打印控件,其设计目标是简单易用、功能足够强大,...Lodop设计者对WEB下的打印开发任务进行了分类汇总,高度抽象,设计出仅用几个功能函数,就可实现复杂的打印任务,尽量减少使用者的知识累赘。

    web打印报表控件Lodop

    Web打印报表控件Lodop是一款专为网页打印设计的组件,它提供了强大的网页打印功能,使得用户在浏览器中即可方便地完成各种复杂的打印任务。Lodop以其简单易用和高效实用的特点,在IT行业内获得了广泛的应用。下面将...

    Lodop与java结合使用打印功能

    Lodop与Java的结合使用,为实现高效、灵活的打印解决方案提供了一种有效途径,特别是对于条码打印这种需求。以下是对这个主题的详细阐述: Lodop(乐度云打印服务)是一款专业的网页打印控件,它提供了丰富的API...

    Lodop Web打印控件

    总之,Lodop Web打印控件是网页打印解决方案的优秀选择,它的强大功能、广泛的浏览器兼容性和便捷的使用方式,使得开发者能够轻松地在网页中实现高效、稳定的打印功能,满足了各种业务场景的需求。无论是企业内部的...

    Lodop 打印方案

    这个方案的核心在于Lodop打印控件,它是一款高度集成的Web打印解决方案,旨在解决传统Web打印过程中的复杂性和困难。 Lodop6.193是该打印控件的最新版本,它提供了一套完整的工具集,包括拖放操作、代码自动生成、...

Global site tag (gtag.js) - Google Analytics