执法文书打印的实现(四):调用ie打印预览
上篇博客被移出首页了,有点灰心。这几篇博客可能没用心,只当做一个任务了。以后质量不高的都发候选了,咱要有自觉啊。这篇写完终于完结了,好开心。
文书页面是通过渲染静态html到本页面div实现的,直接在本页调用ie打印预览会无法自动分页也不好控制打印样式。
页面div:<div id="htmlContainer" align="center"></div>
Html渲染:
function renderHtml() {
var htmlCfg = {
url : htmlUrl,//静态html地址
success : loadHtml,//请求html成功执行的操作
async : true
};
$.ajax(htmlCfg);
}
//渲染表单内容和数据到div中
function loadHtml(data, textStatus) {
// 添加云表单
//alert(data);
$("#htmlContainer").append(data);
// 云表单加载完毕后需要执行的初始化操作
CForm.init();
// 渲单表单
renderForm();
}
为了实现更好的打印预览效果,在opener页面调用打印预览方法:
本页面打印预览按钮方法:
function pre_print(){
//tabPanel.activeTab.id.split("_")[0] 获得当前活动的divID并作为参数传递到pre-print.jsp
var url=L5.webPath+"/jsp/aaepcform/cfaaepformapply/render/pre-print-s.jsp?currentWId=htmlContainer&formId="+formId;
ow=window.open(url,'打印文书','height=1100,width=800,toolbar=no,menubar=no,scrollbars=2, resizable=no,location=no, status=no,alwaysRaised=yes,z-look=yes,depended=yes');
}
}
在opener窗口读取本页div中表单的内容:
//需要打印的div元素
var el=window.opener.document.getElementById(currentWId);
//复制打印内容到本页div中
$("body").append(el.innerHTML);
调用打印预览:
var HKEY_Root,HKEY_Path,HKEY_Key;
HKEY_Root="HKEY_CURRENT_USER";
HKEY_Path="\Software\Microsoft\Internet Explorer\PageSetup\";
//打印设置:通过修改注册表实现
function doPrintPreview(){
try{
//注册表操作对象
var RegWsh = new ActiveXObject("WScript.Shell");
//设置页眉为空
HKEY_Key="header";
RegWsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");
//设置页脚为空
HKEY_Key="footer";
RegWsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");
//设置下边距为0
HKEY_Key="margin_bottom";
RegWsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0");
//设置左页边距(0)
HKEY_Key="margin_left";
RegWsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0");
//设置右页边距(0)
HKEY_Key="margin_right";
RegWsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0");
//设置上页边距为0
HKEY_Key="margin_top";
RegWsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"0");
//设置 不收缩到纸张大小,默认100%
HKEY_Key="Shrink_To_Fit";
RegWsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"no");
//设置 打印页面背景
HKEY_Key="Print_Background";
RegWsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"yes");
//调用ie组件打印预览
printWB.ExecWB(7,1);
}catch(e){
alert("打印失败,请修改IE安全设置");
};
}