lodop实现打印的功能(上)

哎.编辑起来太烦了.重新写一个吧.详情优化版见lodop实现打印的功能(下)

奶茶店杯子上的标签

使用的是lodop的一个前端插件吧...

head头中引入标签打印的js和事件.

 <!--标签打印引入-->
    <object id="LODOP_OB" classid="clsid:2105C259-1E0C-4534-8141-A753534CB4CA" width=0 height=0>
        <embed id="LODOP_EM" type="application/x-print-lodop" width=0 height=0></embed>
    </object>
    <script src="${ctxPath }/resources/js/clodop/LodopFuncs.js"></script>
    <script src='http://localhost:8000/CLodopfuncs.js'></script>

其实如果我们引用的是clodop的话,那么只需要引用一个script,故上面的需要拿掉.

    <%--添加打印lodop.js--%>
    <script src="${ctxPath }/resources/js/clodop/LodopFuncs.js"></script>

标签打印需要安装指定控件的.所以我们再使用的不可能完全把安装软件在本地安装的.CLodopfuncs.js中提供了一个安装连接,会将安装程序放入项目中,客户的浏览器中如果没有安装,会提示安装的.

CLodopfuncs.js中提供了一段代码.注意:href中原事件引入的是jssr-web,现在我们需要将jssr-web修改为我们自己的项目名称.当没有安装lodop的控件的时候.该js会根据我们的浏览器版本提供对应的安装程序.

    var strHtmInstall="<br><font color='#FF00FF'>打印控件未安装!点击这里<a href='"+localhostPath+"/pos-web/resources/js/clodop/install_lodop32.exe' target='_self'>执行安装</a>,安装后请刷新页面或重新进入。</font>";
    var strHtmUpdate="<br><font color='#FF00FF'>打印控件需要升级!点击这里<a href='"+localhostPath+"/pos-web/resources/js/clodop/install_lodop32.exe' target='_self'>执行升级</a>,升级后请重新进入。</font>";
    var strHtm64_Install="<br><font color='#FF00FF'>打印控件未安装!点击这里<a href='"+localhostPath+"/pos-web/resources/js/clodop/install_lodop64.exe' target='_self'>执行安装</a>,安装后请刷新页面或重新进入。</font>";
    var strHtm64_Update="<br><font color='#FF00FF'>打印控件需要升级!点击这里<a href='"+localhostPath+"/pos-web/resources/js/clodop/install_lodop64.exe' target='_self'>执行升级</a>,升级后请重新进入。</font>";
    var strHtmFireFox="<br><br><font color='#FF00FF'>(注意:如曾安装过Lodop旧版附件npActiveXPLugin,请在【工具】->【附加组件】->【扩展】中先卸它)</font>";
    var strHtmChrome="<br><br><font color='#FF00FF'>(如果此前正常,仅因浏览器升级或重安装而出问题,需重新执行以上安装)</font>";
    var strCLodopInstall="<br><font color='#FF00FF'>CLodop云打印服务(localhost本地)未安装启动!点击这里<a href='"+localhostPath+"/pos-web/resources/js/clodop/CLodopPrint_Setup_for_Win32NT.exe' target='_self'>执行安装</a>,安装后请刷新页面。</font>";
    var strCLodopUpdate="<br><font color='#FF00FF'>CLodop云打印服务需升级!点击这里<a href='CLodopPrint_Setup_for_Win32NT.exe' target='_self'>执行升级</a>,升级后请刷新页面。</font>";
    var LODOP;
根据目录.我们可以看到,所有.exe安装程序都在项目文件夹下面了.

修改完这些东西后,就是我们要执行的js文件,控制输出的内容和样式了.

    /*==========================标签打印开始==========================================*/
        // 打印对象
        var LODOP;
        function printPreview(){
            var selectedRow = $(".easyui-datagrid").datagrid("getSelected");
            if(null == selectedRow || '' == selectedRow) {
                syscore.alert('提示','请选择商品,不能打印','info');
                return;
            }
            var goodsName=selectedRow.goodsName;
            var amount=selectedRow.amount;
            var unitName=selectedRow.unitName;
            var salesPrice=selectedRow.salePrice;
            
            CreatePrintPage(goodsName, amount, unitName, salesPrice);
// 打印预览
      /*LODOP.PREVIEW();*/
//打印 LODOP.PRINT(); } function CreatePrintPage(goodsName, amount, unitName, salesPrice) { var opTimeFmt = syscore.formatDate(new Date(), 'yyyy-MM-dd hh:mm:ss'); LODOP=getLodop(); LODOP.PRINT_INIT("订单信息打印"); // 画一个矩形 /*LODOP.ADD_PRINT_RECT(5,5,40,22,2,1);*/ // 设置基本样式 LODOP.SET_PRINT_STYLE("FontSize",10); // 离纸张顶端5px、距左边5px、宽190px、高10px LODOP.ADD_PRINT_TEXT(10, 155, 360, 20, "***** 牛牛的店 *****"); if(goodsName.length<7){ LODOP.ADD_PRINT_TEXT(60, 145, 360, 20, "商品名称: " + goodsName); }else{ LODOP.ADD_PRINT_TEXT(60, 145, 360, 20, goodsName); } LODOP.ADD_PRINT_TEXT(85, 145, 360, 20, "时间:" + opTimeFmt); // 如果要把水印往下一点,则取消下面这一行的注释 //LODOP.ADD_PRINT_TEXT(125, 5, 360, 20, ""); LODOP.ADD_PRINT_BARCODE(5, 280, 100, 100); LODOP.SET_PRINT_PAGESIZE(1, 1000, 150, 20); }; /*==========================标签打印结束==========================================*/

注意:打印预览(PREVIEW)和打印(PRINT)的区别.使用打印预览然后进行打印时,打印出的标签是没有lodop的水印广告的.使用print方法直接打印的时候,是有lodop的水印广告,也就是说,我们为了提高效率,就必须用PRINT方法.当然,有钱的话,可以到lodop商城去购买,都是优化好的. 


这样的话,其余就是调节打印的问题..我们这次使用的是xprint的热敏打印机..安装热敏打印机的时候很烦躁,一般直接联系厂家,让他帮你调节好就ok了.反正我是远程的.其他的就没有什么了...注意点就这么多,反正是人家封装好的.我们能做的也就是寥寥无几了...pagesize的几个参数多调调就有自己满意的样式了..
po几张图看看.蛮有成就感的..哈哈

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值