Lodop实现打印功能

思路:

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

 

转载于:https://my.oschina.net/worriedfox/blog/1544607

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Vue中实现多页打印,你可以使用Lodop插件。Lodop是一个用于浏览器打印的第三方插件,可以提供丰富的打印功能。 以下是在Vue中使用Lodop实现多页打印的基本步骤: 1. 首先,你需要从Lodop官网下载Lodop插件并进行安装。 2. 在Vue项目中引入Lodop插件。你可以在`public/index.html`文件中添加以下代码: ```html <script src="http://localhost:8000/CLodopfuncs.js"></script> ``` 这里的`http://localhost:8000/CLodopfuncs.js`是Lodop插件的访问路径,请根据你的实际情况进行修改。 3. 在Vue组件中,你可以使用`this.$nextTick()`来确保Lodop插件已经加载完毕,然后在回调函数中进行打印操作。 例如,假设你有一个名为`printMultiPage`的方法来处理多页打印: ```javascript methods: { printMultiPage() { this.$nextTick(() => { // 使用Lodop插件进行打印操作 LODOP.PRINT_INIT("多页打印"); LODOP.SET_PRINT_PAGESIZE(1, 'A4', 0, 0); // 循环添加需要打印的内容,可以根据需要进行调整 for (let i = 0; i < 3; i++) { LODOP.NewPage(); LODOP.ADD_PRINT_TEXT(50, 50, 200, 30, `第 ${i+1} 页内容`); } LODOP.PREVIEW(); // 预览打印 // 可以使用其他方法进行打印,如LODOP.PRINT()直接打印等 }); } } ``` 4. 在Vue模板中添加一个触发多页打印的元素,例如一个按钮: ```html <button @click="printMultiPage">多页打印</button> ``` 现在,当用户点击"多页打印"按钮时,Lodop插件会根据你的设置进行多页打印操作。 请注意,以上代码仅为示例,你需要根据自己的需求进行适当的调整和修改。确保Lodop插件已正确安装和引入,并且在使用时可以根据实际情况设置打印内容和样式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值