zoukankan      html  css  js  c++  java
  • lodop第三方插件的使用

    原文链接

    使用pdf.js插件与LODOP控件实现前端浏览器静默打印PDF文件

    lodop官网地址:http://www.lodop.net/download.html

    lodop他人总结教程:https://blog.csdn.net/hello_world_qwp/article/details/78125642    (很实用)

     点击下载,文件里有使用手册

     我是在vue项目中使用的

    点击官网地址,下载后,解压之后会有个文件,

    里面有CLodop_Setup_for_Win32NT.exe     、 install_lodop32.exe、install_lodop64.exe

    1、我直接安装了CLodop_Setup_for_Win32NT.exe

    2、把LodopFuncs.js文件引入项目

    在head  或 body中引入

    <script src="static/LodopFuncs.js"></script>
        <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>

    3、页面中

      template:

    <div id="printarea" v-html="bb" v-show="false"></div>
    <el-button @click="print()">打印</el-button>

    print()方法:

        print(){
                // 打印初始化
                var LODOP = getLodop();
                
                LODOP.PRINT_INIT("打印商品标签");
                // 设置纸张大小
                LODOP.SET_PRINT_PAGESIZE(0,2100,2970,"商品标签");
                // 设置字体
                LODOP.SET_PRINT_STYLE("FontSize", 16);
                // 设置加粗
                LODOP.SET_PRINT_STYLE("Bold", 1);
                // 增加超文本项
                LODOP.ADD_PRINT_HTM("5mm", "5mm", 2100, 2970, document.getElementById("printarea").innerHTML);
                // 打印预览
                LODOP.PREVIEW();
                //直接打印
                // LODOP.PRINT();
            },

    预览和直接打印选1个即可,然后安装上打印机,就可以打印了!!!!

     lodop设计url地址:http://test.kerunsoft.cn/lodop_print/

    参数说明:https://blog.csdn.net/lijj_html5/article/details/70208206

         https://blog.csdn.net/hello_world_qwp/article/details/78125642(整洁全面)

    初始化

    LODOP.PRINT_INIT("打印任务名称");

    设置纸张大小

    SET_PRINT_PAGESIZE(intOrient,intPageWidth,intPageHeight,strPageName);

    参数含义: 
      intOrient:打印方向及纸张类型
        值为1---纵向打印,固定纸张; 
        值为2---横向打印,固定纸张;  
        值为3---纵向打印,宽度固定,高度按打印内容的高度自适应;
        0(或其它)----打印方向由操作者自行选择或按打印机缺省设置。
      intPageWidth:
        纸张宽,单位为0.1mm 譬如该参数值为45,则表示4.5mm,计量精度是0.1mm。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸),如“10mm”表示10毫米。

        intPageHeight:
          固定纸张时该参数是纸张高;高度自适应时该参数是纸张底边的空白高,计量单位与纸张宽一样。整数或字符型,整数时缺省长度单位为0.1毫米。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸),如“10mm”表示10毫米。

        strPageName:
          纸张名,必须intPageWidth等于0时本参数才有效,有如下选择:
            Letter, LetterSmall, Tabloid, Ledger, Legal,Statement, Executive, 
            A3, A4, A4Small, A5, B4, B5, Folio, Quarto, qr10X14, qr11X17, Note, 
            Env9, Env10, Env11, Env12,Env14, Sheet, DSheet, ESheet

    增加超文本项

    ADD_PRINT_HTM(Top,Left,Width,Height,strHtmlContent)

      Top:
        所增打印项在纸张内的上边距,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。
      Left:
        所增打印项在纸张内的左边距,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。
      Width:
        打印区域的宽度,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米。本参数可以用RightMargin关键字转义为打印区域相对于纸张的“右边距”。
      Height:
        打印区域的高度,整数或字符型,整数时缺省长度单位为px。字符型时可包含单位名:in(英寸)、cm(厘米)、mm(毫米)、pt(磅)、px(1/96英寸)、%(百分比),如“10mm”表示10毫米,控件按这个值自动分页。本参数可以用BottomMargin关键字转义为打印区域相对于纸张的“下边距”。
      strHtmlContent:
        超文本代码内容,字符型,未限制长度。可以是一个完整的页面超文本代码,或者是一个代码段落,也可以是URL:web地址形式的URL地址。

    发现打印html模板时,打印文字时,文字会重叠,在网上查了一下,需要指定具体的字体实名:

    <div style="background:pink;text-align:center;font-family:'楷体';">
           <div>奥术大师多撒</div>
           <div>大萨达所大所</div>
           <div>萨达十大撒旦</div>
    </div>

    正常打印的print方法:

             print(){
                var LODOP = getLodop();
                // 打印初始化 
                LODOP.PRINT_INIT("打印任务名称");
                // 设置字体
                LODOP.SET_PRINT_STYLE("FontSize",18);
                // 设置加粗
                LODOP.SET_PRINT_STYLE("Bold",1);
                // 设置纸张大小 打印方向/width/height
                LODOP.SET_PRINT_PAGESIZE(0,"100mm","100mm","商品标签");
                //在指定位置加文本
                // LODOP.ADD_PRINT_TEXT(50,"20%",260,39,"打印页面部分内容");
                // 增加超文本项top/left/width/height(高度自适应,设小了有效,大了无效)
                LODOP.ADD_PRINT_HTM("10mm","10mm","80mm","600mm",document.getElementById("printarea").innerHTML);
                // 预览
                LODOP.PREVIEW();
                // 直接打印
                // LODOP.PRINT();
            },

    注册号购买

    LODOP、C-LODOP注册号的区别

     lodop注册号价格一览表:http://www.c-lodop.com/Lodop_Lic.html

    用lodop获取打印机状态码

    原文链接:https://www.cnblogs.com/huaxie/p/10174903.html

     CLodopFuns.js访问不到,大多是c_clodop没启动,或者是端口设置与项目中引入的lodopFuncs.js中设置的端口不匹配造成的,没启动就启动,端口不对就设置端口。。。

    重复打印,打印任务初始化之后:

    LODOP.SET_PRINT_COPIES(count);

    分任务重复打印:

           reqeatPrint(){//分任务连续打印
                var self=this;
                LODOP = getLodop();
                for(let i=0,len=self.printList.length;i<len;i++){
                    LODOP.PRINT_INIT("循环打印任务");//初始化在循环中
                    // 设置字体
                    LODOP.SET_PRINT_STYLE("FontSize",18);
                    // 设置加粗
                    LODOP.SET_PRINT_STYLE("Bold",1);
                    // 设置纸张大小 打印方向/width/height
                    LODOP.SET_PRINT_PAGESIZE(0,"100mm","100mm","商品标签");
                    //在指定位置加文本
                    // LODOP.ADD_PRINT_TEXT(50,"20%",260,39,"打印页面部分内容");
                    // 增加超文本项top/left/width/height(高度自适应,设小了有效,大了无效)
                    LODOP.ADD_PRINT_HTM("40mm","10mm","80mm","600mm",self.printList[i]);
                    LODOP.PRINT(); 
                }
            },

    分页连续打印:

    breakPagetPrint(){//分页连续打印
                var self=this;
                LODOP = getLodop();
                LODOP.PRINT_INIT("分页打印任务");//初始化在循环中
                // 设置字体
                LODOP.SET_PRINT_STYLE("FontSize",18);
                // 设置加粗
                LODOP.SET_PRINT_STYLE("Bold",1);
                // 设置纸张大小 打印方向/width/height
                LODOP.SET_PRINT_PAGESIZE(0,"100mm","100mm","商品标签");
                //在指定位置加文本
                // LODOP.ADD_PRINT_TEXT(50,"20%",260,39,"打印页面部分内容");
                // 增加超文本项top/left/width/height(高度自适应,设小了有效,大了无效)
                for(let i=0,len=self.printList.length;i<len;i++){
                    LODOP.ADD_PRINT_HTM("40mm","10mm","80mm","600mm",self.printList[i]);
                    LODOP.NewPage(); 
                }
                LODOP.PRINT(); 
            },
  • 相关阅读:
    weiphp 微调研数据管理控制器
    微调研设置问题控制器
    weiphp调研部分代码
    weiphp 投票插件的主控制器部分代码3
    php Stream Contexts 小记
    通过 Composer Github Packagist制作发布共享PHP包
    SFTP远程文件上传
    百度推广 SEM闪投系统
    Illegal mix of collations (utf8_general_ci,IMPLICIT) and (gbk_chinese_ci,COERCIBLE) for operation '='
    Swoole 初识
  • 原文地址:https://www.cnblogs.com/fqh123/p/11263396.html
Copyright © 2011-2022 走看看