excel打印二维码

项目中需要打印二维码,二维码已经用QRCode生成,直接生成图片。本想这把图片显示在页面上 再调用本地打印程序,走条码打印机就ok了。结果遇到问题,打印机纸张大小和页面需要打印的大小匹配不上。不是打印空白,就是打出来两张纸图片内容在两张纸中间。经过高手点拨,随后放弃此方法,改用Excle打印。

主要思路:提前写好Excel模板,在模板中设置好打印需要的页面纸张等…… 点击图片走JS 调用excel ,把图片和要打印的内容传过去,调excel打印,关闭excel。神不知鬼不觉。搞定。

 

具体实现:

1、在设备和打印机中设置好打印纸张大小。

2、创建excle模板,在模板中也需要调好打印机中设置的页面属性,需要一致。

设置完页面属性后可以打印预览 ,关闭后excel即可出现虚线边框,即设置条码纸张大小。便于调页面。

3、JS 调用excel 打印

onClick="PrintTableToExcel('${supFileMain.barCodeName }','${supFileMain.fileTitle}')"//传了两个参数分别是图片的路径,和文章内容
<pre class="javascript" name="code">function PrintTableToExcel(image,title)
{
	var temp = Array();
	try 
	{
	var xls = new ActiveXObject( "Excel.Application" );
	}
	catch(e) 
	{
	alert( "要打印该表,您必须安装Excel电子表格软件,同时浏览器须使用“ActiveX 控件”,您的浏览器须允许执行控件。 请点击【帮助】了解浏览器设置方法!");
	return false;
	}
	xls.visible = false;//excel不可见
	//xls.visible = true;
	//要指定EXCEL的摸板。需要自己建立
	xls.Workbooks.Open("http://127.0.0.1:8080/swsupf/jsp/common/sign/muban.xls");

    //打开工作区
	var xlBook  = xls.Workbooks(1);    
	var xlsheet = xlBook.Worksheets(1);
	//向工作区中填写数据
	//xlsheet.Pictures.Insert("http://127.0.0.1:8080/swsupf" + image);
	xlsheet.Shapes.AddShape(1, 0, 0, 54, 54).Fill.UserPicture("http://127.0.0.1:8080/swsupf" + image);
	//alert(title);
	xlsheet.Cells(1 , 3).Value 	= title ;
	//直接打印
	xlsheet.PrintOut();
	 //excel退出
	xlBook.Close(0);//0为不保存,1为保存
}

 

调用过程中IE可能会提示,这里需要把网站设置成安全信任站点,还有ActiveX控件和插件下面的都设置为启用,不出错,打印机即可打印条码。

相关文章
相关标签/搜索