c_lodop升级打印(用户输入,打印自定义模版)

坚持不懈,才能有机会看到阳光大道!

通过(页面美观+js和lodop)来实现打印名片的功能

首先呢,咱们先把页面画出来(用bootstrap来实现)

页面效果

页面代码

<div style="border: 1px solid  #269ABC; width: 900px; height: 600px; margin: 100px auto">//画一个盒子,长900px,宽600px, margin:100px auto 意思是这个盒子上边距100px,居中
    <div class="btn-group" style="margin: 30px;">//这个盒子是包含3个button,margin:30px 是4边的外边距都是30px,不是那么紧凑,美观一些。
      <button class="btn btn-default" id="addData"><span class="glyphicon glyphicon-plus"> 添加数据</span></button>//span标签的class 是显示图标
      <button class="btn btn-default" id="preview"><span class="glyphicon glyphicon-eye-open"> 打印预览</span></button>
      <button class="btn btn-default" id="startPrint"><span class="glyphicon glyphicon-print"> 开始打印</span></button>
    </div>
    <div class="panel panel-info col-md-11" id="Data" style="margin: 30px;">
        <div class="input-group" style="padding: 10px;">
            <span class="input-group-addon">姓名</span>
            <input type="text" class="form-control" placeholder="请输入名称" id="UserName" name="UserName">
        </div>
        <div class="input-group" style="padding: 10px;">
            <span class="input-group-addon">电话</span>
            <input type="text" class="form-control" placeholder="请输入电话" id="phone" name="phone">
        </div>
        <div class="input-group" style="padding: 10px;">
            <span class="input-group-addon">公司</span>
            <input type="text" class="form-control" placeholder="请输入公司" id="companyName" name="companyName">
        </div>
         <input type="button" class="btn btn-default col-md-3 col-md-offset-2" id="close" value="关  闭">
         <input type="button" class="btn btn-default col-md-3 col-md-offset-2" id="sure" value="保  存">
    </div>
  <div class="SelectTableData" id="SelectTableData"></div>//用来显示下面的table
</div>

bootstrap组件(图标) : http://v3.bootcss.com/components/

js代码

var model={user:'',phone:'',companyName:''}//用来保存填写的数据
var head=['用户名','手机号码','公司名称']//生成table表头
    
//点击保存给model赋值,
$("#sure").bind("click",function(){
        model = {};//初始化model,是为了防止多次保存,有多余数据
            model.user = $("#UserName").val();
            model.phone = $("#phone").val();
            model.companyName = $("#companyName").val();
      //这里需要判断一下是否已经存在表格,如果存在清空
          if ($("tr th").length > 0) {
                //清空表格
                document.getElementById("SelectTableData").innerText = "";
                creatTable(model,head);//生成table函数
            } else {
                creatTable(model,head);//生成table函数
            }
      
})
//创建table,(model是数据源,head是表头)
function creatTable(model,head){
             var table = $('<table class="table table-hover table-striped table-bordered">');
             $(".SelectTableData").append(table);
             var caption = $('<caption style="text-align:center;">打印信息</caption>');
             table.append(caption);
             var thead = $('<thead></thead>');
             var tr=$('<tr></tr>')
             for (var th in head) {
                tr.append('<th>' + head[th] + '</th>');
            }
            thead.append(tr);
            var trs = $('<tr></tr>');
            for (var item in model) {
                trs.append('<td>' + model[item] + '</td>');
                thead.append(trs);
            }
            table.append(thead);
        }

lodop代码

$("#preview").bind("click",function(){
//预览
LODOP = getLodop();
printInfo(model);
LODOP.PREVIEW();
})
$("#startPrint").bind("click",function(){
//打印
LODOP = getLodop();
printInfo(model);
LODOP.PRINT();
})
function  printInfo(model){
LODOP.PRINT_INIT("打印测试");
LODOP.SET_PRINT_PAGESIZE(0, "90mm","50mm","");
LODOP.ADD_PRINT_LINE("10mm", "5mm", "10mm", "85mm", 0, 1);
LODOP.ADD_PRINT_LINE("10mm", "5mm", "40mm", "5mm", 0, 1);
LODOP.ADD_PRINT_LINE("10mm", "85mm", "40mm", "85mm", 0, 1);
LODOP.ADD_PRINT_LINE("40mm", "5mm", "40mm", "85mm", 0, 1);
LODOP.ADD_PRINT_TEXT("12mm", "45mm", "80mm", "8mm", model.user);
LODOP.SET_PRINT_STYLEA(0,"FontName", "方正姚体");//FontName设置字体为宋体
LODOP.SET_PRINT_STYLEA(0,"FontSize", 20);//FontSize设置字体大小(单位是:pt)
LODOP.SET_PRINT_STYLEA(0,"Bold", 1);//Bold:设定纯文本打印项是否粗体 (1是粗体,0不是粗体)。
LODOP.ADD_PRINT_TEXT("22mm", "45mm", "80mm", "8mm", model.phone);
LODOP.SET_PRINT_STYLEA(0,"FontName", "方正姚体");//FontName设置字体为宋体
LODOP.SET_PRINT_STYLEA(0,"FontSize", 20);//FontSize设置字体大小(单位是:pt)
LODOP.SET_PRINT_STYLEA(0,"Bold", 1);//Bold:设定纯文本打印项是否粗体 (1是粗体,0不是粗体)。
LODOP.ADD_PRINT_TEXT("32mm", "45mm", "80mm", "8mm", model.companyName);
LODOP.SET_PRINT_STYLEA(0,"FontName", "方正姚体");//FontName设置字体为宋体
LODOP.SET_PRINT_STYLEA(0,"FontSize", 20);//FontSize设置字体大小(单位是:pt)
}
预览效果

lodop最基础代码(如何配置,每行代码的意思,参数的意思):http://www.jianshu.com/p/265247973e44

一名职场菜鸟,希望大家多提提意见。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 作为一个前端程序猿,下面这些站会让你眼前一亮。 amazeui框架组建丰富 http://amazeui.org...
    欧巴冰冰阅读 8,903评论 18 303
  • 我们努力拼搏,负重前行,不是为了将生活过成混沌的黑白照片。试着为周而复始的平凡日子嵌入一点色彩,给自己一点小小的奖...
    树默阅读 858评论 31 30
  • 我今天有四个“顿悟时刻”: 【4次修改,脱胎换骨】 宋海兰老师应分公司同事邀请写一篇文章,文章的目的正如文章标题那...
    飞常说法阅读 304评论 0 0