最近做了一个项目,里面涉及了打印的问题,小编就拿出来给大家分享一下,现在jquery库里面的打印都是使用window.print()进行页面的打印还有一些不知名的插件,这些打印有很多的问题,同时也会加大开发的难度。鉴于需要动态传值和指定字段的打印位置,我最近在网上找到了一个现如今比较流行的打印插件lodop(中文名“劳道谱”),这个lodop相比于其他的打印插件有着一下优点。
(1)、支持打印类型丰富:图片,网页,文本,一维码,二维码,报表等等;
(2)、对浏览器兼容性好:对于主流浏览器如IE,firefox,chrome都支持(ie,chrome
亲测);
(3)、集成方式简单:只需要安装一下插件并且引入js就可以直接使用。
下面我就说一下这个插件的在java中的集成过程:
注意:首先的安装好这个插件,然后才可以进行下面操作(安装教程只需要点击对应的.exe文件,一直下一步就可以)
(1)、首先在lodop官网下载相关文件(js、css等):http://www.lodop.net/download.html。
(2)、在下载好的包里 除了html页面 其他的js、css等拷贝到项目的一个目录下、新建个lodop文件夹
(3)、在页面头部加入下面等信息、这里注意的是引入的文件地址
注意:对应文件的地址一定要写对。
(4)、配置好了后直接在写打印的相关代码。
// 创建打印对象
var LODOP=getLodop();
//初始化打印对象。参数是
LODOP.PRINT_INIT("打印任务名");
//然后多个ADD语句及SET语句 ,打印方法有很多,下面会介绍
LODOP.ADD_PRINT_TEXT(0,0,100,20,"文本内容一");
//最后一个打印(或预览、维护、设计)语句 ,如果要预览的话
//LODOP.PRINT(); //直接打印
LODOP.PREVIEW(); //打印预览
使用到这里就已经结束了,就是这么简单。
下面主要说一下满足各方面需求的打印方法
var LODOP;
LODOP.PRINT_INIT();//打印控件初始化
//设置默认打印机
LODOP.PRINT_MODE("WINDOW_DEFPRINTER",打印机名称或序号);
//设置默认打印机及纸张
LODOP.PRINT_MODE("WINDOW_DEFPRINTER:打印机名称或序号",纸张名称);
var strHtml=document.getElementById("fanh").innerHTML;
//打印HTML网页
LODOP.ADD_PRINT_HTM(intTop,intLeft,intWidth,intHeight,strHtml);
//打印表格,报表
LODOP.ADD_PRINT_TABLE(intTop,intLeft,intWidth,intHeight,strHtml);
//打印纯文本
LODOP.ADD_PRINT_TEXT(intTop,intLeft,intWidth,intHeight,strContent);
//打印图片
LODOP.ADD_PRINT_IMAGE(intTop,intLeft,intWidth,intHeight,img);
/*打印一维码或二维码
Width 条码的总宽度,计量单位px(1px=1/96英寸)
Height 条码的总高度(一维条码时包括文字高度)
BarCodeType 条码的类型(规制)名称
BarCodeValue 条码值
BarCodeType有26中,包括24种一维码和2种二维码
24种一维码:128A,128B,128C,128Auto,EAN8,EAN13,EAN128A,EAN128B,EAN128C,Code39,
39Extended,2_5interleaved,2_5industrial,2_5matrix,UPC_A,UPC_E0,UPC_E1,UPCsupp2,
UPCsupp5,Code93,93Extended,MSI,PostNet,Codabar
2种二维码:QRCode,PDF417
*/
LODOP.ADD_PRINT_BARCODE(Top,Left,Width,Height,BarCodeType,BarCodeValue);
/*
设置打印方向及纸张大小
intOrient:打印方向,1:纵向(固定纸张),2:横向(固定纸张),3:纵向(固定宽度,高度自适应),0:方向不定
intPageWidth:纸张宽度
intPageHeight:纸张高度
strPageName:纸张类型名称,intPageWidth值为0才有效,如“A4”、“A5”等
*/
LODOP.PRINT_PAGESIZE(intOrient,intPageWidth,intPageHeight,strPageName);
//直接打印
LODOP.PRINT();
//打印预览
LODOP.PRVIEW();
//打印维护
LODOP.PRINT_SETUP();