年,国家对危险废物管理工作的严抓细管有目共睹。随着更规范详实的执行标准,以及更严厉的处罚措施相继出台,也对企业的危废管理能力提出了新的要求和考验。面对这一趋势,“德佟印立方危废标识解决方案”,受到了市场的普遍认可和青睐。
“德佟印立方危废标识解决方案”包括德佟印立方DP12370危废标签打印机和“危废标识管理”App,能简单、快速地通过多种方式直接打印出符合规范标准的危废标签,包括网页端的危废二维码,同时还能高效统筹标签信息,方便企业随时调用和查阅,有效解决了传统危废标识管理过程中的各种“疑难杂症”。
具体来说,“德佟印立方危废标识解决方案”的优势可以归纳为3点。
操作简单,高效便捷
首先,其可以直接蓝牙连接后,使用手机编辑打印标签,随时随地使用,不受场景限制。同时,工作人员在录入时,使用配套的软件就能直接识别营业执照、扫描营业执照二维码添加组织信息,或者通过危废代码/类别/名称来智能检索相关信息,再“一键”生成数字识别码和二维码,快速完成标签的打印制作,且制作出的标签也完全符合规范。
另外,录入期间,软件还可以自动匹配《国家危险废物名录》数据,省去了繁琐的输入过程,提高了准确率,节省了工作时间。后续再需要调阅信息时,也只需要扫描二维码即可,十分方便快捷。
适用性强,满足不同企业危废管理需求
在实际的危废管理工作中,不同行业制作标签的场景和需要的标签尺寸可能不尽相同。这时候,就需要我们考虑到标签管理工具的适用性。
在使用场景方面,“德佟印立方危废标识解决方案”除了可以通过软件录入信息打印制作标签外,还能直接连接德佟印立方DP12370危废标签打印机,制作打印企业自定义的二维码标签,以及网页端二维码。
标签尺寸方面,德佟印立方DP12370危废标签打印机也提供了三种适配选择,即100*100MM/150*150MM/200*200MM,企业可以根据需求自行选择。
“一键”扫码打印网页端二维码
众所周知,许多用于上报危废数据的省级危废管理平台系统都能生成对应的危废二维码,但生成后想要打印却十分不方便,一方面有些平台没有标签打印功能,另一方面有打印功能的平台使用起来也十分繁琐不便,难以操作。
针对这个问题,“德佟印立方危废标识解决方案”给出了一个圆满的解决办法——一键扫码打印网页端二维码。很简单,只需打开德佟印立方“危废标识管理”App,再扫描平台网页端生成的危废二维码,之后软件会自动获取数据生成标签,再直接打印即可。
值得强调的是,“德佟印立方危废标识解决方案”基本覆盖了所有省份的危废管理平台,换句话说,其几乎支持所有平台的“一键扫码”打印。
危废管理工作的重要性越来越强,企业也应审时度势,及时提高危废管理意识,升级迭代危废管理方式,学会通过数字化工具让危废管理“快”起来,同时也让企业的经营管理提质增效。
.首先引入js插件
<!--第一个生成二维码,2,3分别2种打印插件-->
<script type="text/javascript" src="/Liems/plugins/aweto/jquery.qrcode.min.js"></script>
<script type="text/javascript" src="/Liems/plugins/aweto/jquery.jqprint-0.3.js">
</script><script src="/Liems/plugins/aweto/jquery.PrintArea.js"></script>
2.然后再html中添加二维码显示的位置
<div id="wai" >
<div id="qrcode"></div>
<!--startprint-->
<div id="daying"><img src="" id="image" style="display: none;"/></div>
<!--endprint-->
<button id="bu" class='i-form-button' onclick="stamp()" style="display: none;">打印二维码</button>
</div>
3.然后在js中写入生成二维码的方法
jQuery(function(){
//获取身份证号码
var idCard = $('#EOEMPMST__0__EEM_SFZ_COD').val();
var jsons=idCard+"|1";
var zhi=utf16to8(jsons);
//判断是否新建
if(idCard != null && idCard != ''){
jQuery('#qrcode').qrcode({
render : "canvas",
width : 150,
height : 150,
text : zhi
});
//保存为图片
$("canvas").attr("id","erw");
var canvas = document.getElementById('erw');
var context = canvas.getContext('2d');
var image = new Image();
var strDataURI =canvas.toDataURL("image/png");
document.getElementById('image').src = strDataURI;
document.getElementById('bu').setAttribute('style', 'display: block');
}
})
4.qrcode对中文支持不太好,,所以需要转码
//转码
function utf16to8(str) {
var out, i, len, c;
out = "";
len = str.length;
for(i = 0; i < len; i++) {
c = str.charCodeAt(i);
if ((c >= 0x0001) && (c <= 0x007F)) {
out += str.charAt(i);
} else if (c > 0x07FF) {
out += String.fromCharCode(0xE0 | ((c >> 12) & 0x0F));
out += String.fromCharCode(0x80 | ((c >> 6) & 0x3F));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
} else {
out += String.fromCharCode(0xC0 | ((c >> 6) & 0x1F));
out += String.fromCharCode(0x80 | ((c >> 0) & 0x3F));
}
}
return out;
}
5.最后进行局部打印
//局部打印
function stamp(){
var bdhtml=window.document.body.innerHTML;//获取当前页的html代码
var odd=bdhtml;
var sprnstr="<!--startprint-->";//设置打印开始区域
var eprnstr="<!--endprint-->";//设置打印结束区域
var prnhtml=bdhtml.substring(bdhtml.indexOf(sprnstr)+17); //从开始代码向后取html
prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));//从结束代码向前取html
window.document.body.innerHTML=prnhtml;
window.print();
//第二种打印jQuery('#wai').PrintArea();
//还原原网页
window.document.body.innerHTML=odd;
document.getElementById('bu').setAttribute('style', 'display: none');
document.getElementById('image').src="";
window.location.reload();
}
方法中有业务处理,,忽略即可。大体思路如上,欢迎讨论
前帮客户做合同和协议打印的时候,收集过一些打印相关的资料,整理了一下内容,分享给有需要的朋友。
<body>
<object id="WebBrowser" classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height="0" width="0"></object>
</body>
<script>
WebBrowser.ExecWB(1,1) // 打开
WebBrowser.ExecWB(2,1) // 关闭现在所有的IE窗口,并打开一个新窗口
WebBrowser.ExecWB(4,1) // 保存网页
//--------------- 常用 --------------
WebBrowser.ExecWB(6,1) // 打印
WebBrowser.ExecWB(6,6) // 直接打印
WebBrowser.ExecWB(7,1) // 打印预览
WebBrowser.ExecWB(8,1) // 打印页面设置
//-------------------------------------
WebBrowser.ExecWB(10,1) // 查看页面属性
WebBrowser.ExecWB(15,1) // 撤销
WebBrowser.ExecWB(17,1) // 全选
WebBrowser.ExecWB(22,1) // 刷新
WebBrowser.ExecWB(45,1) // 关闭窗体无提示
</script>
通过$("#id").print(/options/)和$('#id').printArea(/options/)调用,其中的options可以配置一些选项,具体看对应的说明文档。
收费的、不收费的都有,这里就不多提了。
复杂的套打可以选第三方插件。jQuery插件是封装的print方法,我前几年给银行网点做了个小系统需要局部打印,选了插件,其实没有很理想,需要自己做一些调整才行。大部分情况用print就能解决。
页面上显示的内容与最终需要打印的内容之间总是存在差异的,从两个方向解决这个问题,一个是打印时只显示需要打印的部分,另一个是打印前调整页面的内容,只保留需要打印的部分。可以用到下面几个方法:
css media query 可以写一些只在打印时有效的样式,例如控制页面某个按钮打印时隐藏
@media print{
.no-print{
display:none
}
}
可以用onbeforeprint和onafterprint在打印前重新编辑内容,专门送去打印,打印后又处理回来。
function window.onbeforeprint()
{ //将一些不需要打印的隐藏 }
function window.onafterprint()
{ //放开隐藏的元素 }
// polyfill
// 对于基于Webkit的浏览器,您可以创建一个等效的结果window.matchMedia('print')。
// var mediaQueryList = window.matchMedia('print');
// mediaQueryList.addListener('change', function(mql) {
// if(mql.matches) {
// console.log('webkit equivalent of onbeforeprint');
// }
// });
onbeforeprint 在设置页面打印之后但是在打印对话框出现之前执行 JavaScript
onafterprint 定义为在设置页面打印且打印对话框已出现之后,执行一段 JavaScript。只有 Internet Explorer 和 Firefox 支持 onafterprint 事件属性。但是:在 IE 中,onafterprint=属性在打印对话框出现之前而不是之后发生。
onbeforeprint fired before dialog appears and allows one to change html and so on.onafterprint is fired just before dialog appears. It is not even possible to know, whether document was actually printed or user canceled it. Needless to say about when printing finished (if started at all).Again: no event is available to track anything happened in print dialog, i.e. answer to your question is no.Moreover, I hope what your need will never be implemented, cause this allows to frustrate user. He/she asks to print one document, but got something different.
改变页面内容的方式体验比较糟糕,个人不推荐,jq插件默认是用iframe,其实还可以window.open一个单独的打印页面,预览和打印都好解决,两种方式都需要注意样式表是在原来的页面,需要稍微注意下样式是否有缺失。
page-break-before:always;
page-break-after:always;
page-break-inside:avoid;
用样式可以控制主动使用分页符,没用过的可以看下这里
http://www.w3school.com.cn/cssref/pr_print_page-break-after.asp
有3种办法,但都有限制
网上下载ScriptX.cab文件
下载成功后将文件放在项目某个目录下,然后在页面body中写上:
<object id="factory" name="factory" style="display: none" classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814" codebase="ScriptX.cab" viewastext></object>
codebase属性为ScriptX.cab文件的放置路径(绝对路径)
调用:factory.printing.Print(false)即可
需要修改IE浏览器安全设置,否则还是会弹出对话框
然后执行
document.getElementById('WebBrowser').ExecWB(6,2,3)
可以使用vb,但是IE11开始已经被微软废弃,无法执行vb代码了。
execScript('document.getElementById("WebBrowser").ExecWB 6, 2, 3','vbscript');
无边距打印是打印机的一种功能,即全幅打印,打印纸不留空白。
适用于照片打印,广告打印,海报打印等。
目前的主流打印机都有支持该功能的型号。
当在应用程序中创建用于打印的数据时,需要调整数据到打印纸的尺寸。如果应用程序中有边距设置,应确保在打印前将它们设为零。
注意:
使用此功能进行打印将比普通打印要花更长时间。
使用此功能打印输出的顶部和底部区域的打印质量可能会下降,或者在上面未列出的介质上打印时该区域可能会污损。在打印大量的作业之前先打印一页以检查打印质量。
遇到的一个需求,只打印合同中需要填写数据的几页,不能使用自带的页码,所以把自带的页码去掉,然后写个div定位到原来页码的位置,里面的内容就可以自己控制了。需要注意:
1. 页面打印区域的原因,不是在任意打印机上都可以把页码打印在纸张的边缘,需要根据打印机的可打印区域调整。
2. 页码需要使用到绝对定位,所以要求打印的内容是确定的,目前遇到有这个需求的,打印内容也都是固定的。
chrome 支持 @page 规则
@page{size : A4 lanscape;}
需要在打印首选项中设置。
注意:有时候需要通过加个空白页来让后面的内容从新的一张纸开始打印。
打印设置里可以修改,不过很难用程序控制打印份数。可以曲线实现,在打印的时候,直接把内容重复N遍再打印一份出来的就是N份了。
时代变得真快,现在的IE都已经退出了历史舞台。新框架一个接一个冒出来,老系统里的这些老代码,不知道什么时候会消失。
*请认真填写需求信息,我们会在24小时内与您取得联系。