原文链接

使用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();
},

lodop第三方插件的使用的更多相关文章

  1. zabbix通过第三方插件percona监控mysql数据库

     zabbix通过第三方插件percona监控mysql数据库                                                                     ...

  2. iOS 开发:利用第三方插件来安装CoCoapods

    引言:通过上一篇博客我们知道了怎么样去通过终端来安装CoCoapods,这一篇我们着重与用第三方插件来安装CoCoapods: 1. 首先在提下链接下载插件 https://github.com/ka ...

  3. 苹果下如果安装nginx,给nginx安装markdown第三方插件

    用brew install nginx 这样安装的是最新版的nginx, 但是在有些情况下,安装第三方插件需要特定的版本,更高一级的版本可能装不上. 它的原理是下载安装包进行自动安装,建立软链,这样就 ...

  4. chrome升级后LODOP打印插件无法使用

    今天帮朋友使用LODOP实现一个套打程序时,发现LODOP打印插件在chrome下始终无法使用.分析后发现是自己才升级了chrome,chrome新版默认是禁用npapi的,因此需要手动启用一下,启用 ...

  5. ThinkPHP自动获取关键词(调用第三方插件)

    ThinkPHP自动获取关键词调用在线discuz词库 先按照下图路径放好插件 方法如下 /** * 自动获取关键词(调用第三方插件) * @return [type] [description] * ...

  6. iOS 学习笔记 十 (2015.04.03)xcode第三方插件

    1.xcode第三方插件,存放路径:~/Library/Application Support/Developer/Shared/Xcode/Plug-ins

  7. zatree第三方插件

    Zabbix安装第三方插件zatree2.4.5 1.下载zatree第三方插件https://github.com/spide4k/zatree.git 2.检查PHP环境需要支持php-xml.p ...

  8. [iOS 10 day by day] Day 1:开发 iMessage 的第三方插件

    本文介绍了 iOS 10 的一个重要更新:Messages 应用支持第三方插件了.作者用一个小游戏作为例子,说明了插件开发从建工程开始,到绘制界面.收发消息的全过程. <iOS 10 day b ...

  9. ionic3.0--angular4.0 引入第三方插件库的方法

    ionic3.0 引入第三方插件 (swiper),方法很多,现详细说明下官方推荐(typings)做法. 1.全局安装Typings 1. npm install -g typings  2.搜索你 ...

随机推荐

  1. Jfinal初次尝试及Jetty使用相关问题

    Jetty介绍 Jetty官网:http://www.eclipse.org/jetty/ 参考:Jetty使用教程(一)--开始使用Jetty 1. 使用 参考上面文档,但是有些更新: echo $ ...

  2. rgba()和opacity的比较(转)

    https://blog.csdn.net/u014150409/article/details/44906767

  3. 第四讲,数据目录表之导入表,以及IAT表

    一丶IAT(地址表) 首先我们思考一个问题,程序加载的时候会调用API,比如我们以前写的标准PE 那么他到底是怎么去调用的? 它会Call 下边的Jmp位置 而Jmp位置则是对一个全局变量取内容. 看 ...

  4. Struts2系列漏洞起始篇

    前言 到目前位置struts2的漏洞编号已经到了S2-057,一直想系统的学习下Struts2的漏洞,但由于工作量较大,一直搁浅.最近由于工作需要,借此机会来填下坑.个人认为一个框架漏洞出来了仅仅看下 ...

  5. golang GC(一 原理)

    golang中的gc采用三色标记法.在讲三色标记法之前,先了解一下Mark and Sweep算法,因为Mark and Sweep算法是三个标记法的一个改进版. Mark and Sweep算法: ...

  6. Elasticsearch 9300无法访问,客户端出现NoNodeAvailableException[None of the configured nodes are available:  [{#transport#‐1}{exvgJLR‐RlCNMJy‐hzKtnA}

    1.  进入容器 docker exec ‐it ID /bin/bash 2. 拷贝配置文件到宿主机 docker cp  ID:/usr/share/elasticsearch/config/el ...

  7. 【2017-11-26】Linq表连接查询

    class Program { static void Main(string[] args) { //Linq创建的数据库上下文对象db DataClasses2DataContext db = n ...

  8. springboot集成Apollo分布式配置

    安装Apollo服务 1.安装mysql 地址:https://www.cnblogs.com/xuaa/p/10782352.html 2.下载Apollo源码到本地 地址:https://gith ...

  9. windows7重置网卡命令

    点击windows左下角菜单键,输入cmd 然后鼠标右键 cmd 以管理员身份运行,并输入命令 netsh winsock reset, 然后回车执行. 系统会提示要求重启计算机. 重启后即重置网卡成 ...

  10. python的类和对象(1)

    类和对象 现在这年头,怎么哪里都有对象?街上看了一路手拉手,回来学习还要看到"对象". 是不是学会了对象,就有对象了? 1.定义: 百度解释: 对象是对客观事物的抽象,类是对对象的 ...