思路:
1、在 html 页面引入 LodopFuncs.js 文件,并用 object 标签和 embed 标签获取 lodop 对象
2、在 js 中获取 html 页面中的 object 和 embed 对象,并使用getLodop() 方法得到 lodop 对象
3、实现打印功能,以下三步是必需的
- 初始化一个打印页面 LODOP.PRINT_INIT
- 添加需要打印的内容 LODOP.ADD_PRINT_TABLE //此处我是添加的table,也可以是text等,自行查询lodop API
- 进行打印或打印设计/预览 LODOP.PRINT_DESIGN
具体代码如下:
html 页面
<!doctype html>
<html>
<head>
<title>Lodop打印</title>
<script type="text/javascript" src="js/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>
</head>
<body>
<button id="print" onClick="print()"></button>
</body>
</html>
js 页面
var LODOP;
$(document).ready(function(){
LODOP = initPrintData();
});
function initPrintData() { //得到 lodop 对象
var object = document.getElementById('LODOP_OB');
var embed = document.getElementById('LODOP_EM');
var LODOP = getLodop(object, embed);
return LODOP;
}
function print() { //点击打印按钮时,调用该方法
var startTime = $("#startTime").datebox('getValue');
var endTime = $("#endTime").datebox('getValue');
$.ajax({ // 此处我使用的ajax请求从后台获取打印的数据,也可以使用其他方式获取
url : 'printAccreditUserCountDataExcel.html',
type : 'POST',
data : {
//some param
},
success : function(data){
var textHtml = '<table width="700" border="1" width="100%" cellspacing="0" cellpadding="0" style="font-size:14px;">'
+ '<tr align="center">'
+ '<td width="90" align="center" >日期</td>'
+ '<td width="160" align="center" >部门</td>'
+ '<td width="160" align="center" >已授权人数</td>'
+ '<td width="110" align="center" >未授权人数</td>'
+ '</tr>';
var json = eval("(" + data + ")");
for (var i = 0; i < json.length; i++) {
var department = json[i].department;
var date = json[i].dateTime;
var accredit = json[i].accredit;
var unAccredit = json[i].unAccredit;
textHtml += '<tr align="center">'
+ '<td >' + date + '</td>'
+ '<td >' + department + '</td>'
+ '<td >' + accredit + '</td>'
+ '<td >' + unAccredit + '</td>'
+ '</tr>';
textHtml += "</table>";
doPrint(textHtml);
}
},
error : function() {
alert("error");
}
});
}
function doPrint(textHtml) {
LODOP.PRINT_INIT("授权情况打印");
LODOP.ADD_PRINT_TABLE(84, 10, 1000, "270mm", textHtml);
LODOP.PRINT_DESIGN();
}