web 页面分页打印的实现_javascript技巧
程序员文章站
2022-04-26 18:50:35
...
1.首先引入一个WebBrowser在需要打印的页面,可以直接添加:
到页面,或者使用JavaScript在需要的时候临时添加也可以:
document.body.insertAdjacentHTML("beforeEnd",
"
2 .页面设置和打印预览
如下所示,直接调用即可
document.all.WebBrowser.ExecWB(6,6) 直接打印
document.all.WebBrowser.ExecWB(8,1) 页面设置
document.all.WebBrowser.ExecWB(7,1) 打印预览
或者:
execScript("document.all.WebBrowser.ExecWB 7, 1","VBScript");
3 隐藏不打印的页面元素和分页
CSS 有个Media 属性,可以分开设置打印和显示的格式。
如 中间的格式将只在打印时起作用,不会影响显示界面。
所以可以设定
然后给不想打印的页面元素添加: class="Noprint" ,那就不会出现在打印和打印预览中了。
想分页的地方添加: 就可以了。
4.打印页面的特定部分
通过将需要打印的特定部分另建一个页面,然后装入主页面的一个IFrame中,再调用IFrame的打印方法,只打印IFrame中的内容实现的。
如:
下面的pringFrame js函数将只打印Iframe中的内容,可以直接引用使用,如printFrame(FrameId);
window.print = printFrame;
// main stuff
function printFrame(frame, onfinish) {
if ( !frame ) frame = window;
function execOnFinish() {
switch ( typeof(onfinish) ) {
case "string": execScript(onfinish); break;
case "function": onfinish();
}
if ( focused && !focused.disabled ) focused.focus();
}
if (( frame.document.readyState !== "complete") &&( !frame.document.confirm("The document to print is not downloaded yet! Continue with printing?") ))
{
execOnFinish();
return;
}
var eventScope = printGetEventScope(frame);
var focused = document.activeElement;
window.printHelper = function() {
execScript("on error resume next: printWB.ExecWB 6, 1", "VBScript");
printFireEvent(frame, eventScope, "onafterprint");
printWB.outerHTML = "";
execOnFinish();
window.printHelper = null;
}
document.body.insertAdjacentHTML("beforeEnd",
"
复制代码 代码如下:
到页面,或者使用JavaScript在需要的时候临时添加也可以:
复制代码 代码如下:
document.body.insertAdjacentHTML("beforeEnd",
"
2 .页面设置和打印预览
如下所示,直接调用即可
复制代码 代码如下:
document.all.WebBrowser.ExecWB(6,6) 直接打印
document.all.WebBrowser.ExecWB(8,1) 页面设置
document.all.WebBrowser.ExecWB(7,1) 打印预览
或者:
复制代码 代码如下:
execScript("document.all.WebBrowser.ExecWB 7, 1","VBScript");
3 隐藏不打印的页面元素和分页
CSS 有个Media 属性,可以分开设置打印和显示的格式。
如 中间的格式将只在打印时起作用,不会影响显示界面。
所以可以设定
然后给不想打印的页面元素添加: class="Noprint" ,那就不会出现在打印和打印预览中了。
想分页的地方添加: 就可以了。
4.打印页面的特定部分
通过将需要打印的特定部分另建一个页面,然后装入主页面的一个IFrame中,再调用IFrame的打印方法,只打印IFrame中的内容实现的。
如:
下面的pringFrame js函数将只打印Iframe中的内容,可以直接引用使用,如printFrame(FrameId);
复制代码 代码如下:
window.print = printFrame;
// main stuff
function printFrame(frame, onfinish) {
if ( !frame ) frame = window;
function execOnFinish() {
switch ( typeof(onfinish) ) {
case "string": execScript(onfinish); break;
case "function": onfinish();
}
if ( focused && !focused.disabled ) focused.focus();
}
if (( frame.document.readyState !== "complete") &&( !frame.document.confirm("The document to print is not downloaded yet! Continue with printing?") ))
{
execOnFinish();
return;
}
var eventScope = printGetEventScope(frame);
var focused = document.activeElement;
window.printHelper = function() {
execScript("on error resume next: printWB.ExecWB 6, 1", "VBScript");
printFireEvent(frame, eventScope, "onafterprint");
printWB.outerHTML = "";
execOnFinish();
window.printHelper = null;
}
document.body.insertAdjacentHTML("beforeEnd",
"
推荐阅读
-
js 实现打印网页中定义的部分内容的代码_javascript技巧
-
js 实现打印网页中定义的部分内容的代码_javascript技巧
-
js检查页面上有无重复id的实现代码_javascript技巧
-
javascript web页面刷新的方法收集_javascript技巧
-
用javascript实现页面打印的三种方法
-
静态页面也可以实现预览 列表不同的显示方式[原创]_javascript技巧
-
JS构建页面的DOM节点结构的实现代码_javascript技巧
-
利用javascript实现web页面中指定区域打印_javascript技巧
-
JS实现点击图片在当前页面放大并可关闭的漂亮效果_javascript技巧
-
JS实现在页面随时自定义背景颜色的方法_javascript技巧