美文网首页
c_lodop升级打印(用户输入,打印自定义模版)

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

作者: YB_L | 来源:发表于2017-04-28 13:05 被阅读0次

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

通过(页面美观+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

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

相关文章

网友评论

      本文标题:c_lodop升级打印(用户输入,打印自定义模版)

      本文链接:https://www.haomeiwen.com/subject/cqpozttx.html