使用JS打印网页内容及图片
2018-01-11 16:30
465 查看
由于要打印绘制生成的图片,于是选择使用JS去打印,方法及遇到的问题如下:
目前在chrome内核浏览器和IE实验成功,好用
指定部分内容打印
[javascript] view
plain copy
function doPrint() {
bdhtml = window.document.body.innerHTML;
sprnstr = "<!--startprint-->";
eprnstr = "<!--endprint-->";
prnhtml = bdhtml.substr(bdhtml.indexOf(sprnstr) + 17);
prnhtml = prnhtml.substring(0, prnhtml.indexOf(eprnstr));
window.document.body.innerHTML = prnhtml;
if (getExplorer() == "IE") {
pagesetup_null();
}
window.print();
}
我的需求是打印图片,所以在我图片的部分
[html] view
plain copy
<!--startprint-->
<img id="image_ZKZ" runat="server" src="" />
<!--endprint-->
增加了上述用于截断字符串的内容,这样通过doPrint()方法就能够截取到指定的图片内容了
这种情况下打印使用chrome是正常打印,并且没有页眉页脚,但是IE则仍然有,于是在 doPrint() 方法中使用了getExplorer() 方法来获取浏览器类型,以及pagesetup_null() 来去掉IE的页眉页脚,两个方法如下:
[javascript] view
plain copy
// 获取浏览器
function getExplorer() {
var explorer = window.navigator.userAgent;
//ie
if (explorer.indexOf("MSIE") >= 0) {
return "IE";
}
//firefox
else if (explorer.indexOf("Firefox") >= 0) {
return "Firefox";
}
//Chrome
else if (explorer.indexOf("Chrome") >= 0) {
return "Chrome";
}
//Opera
else if (explorer.indexOf("Opera") >= 0) {
return "Opera";
}
//Safari
else if (explorer.indexOf("Safari") >= 0) {
return "Safari";
}
}
[javascript] view
plain copy
// IE设置去除页眉页脚
function pagesetup_null() {
var hkey_root, hkey_path, hkey_key;
hkey_root = "HKEY_CURRENT_USER";
hkey_path = "\\Software\\Microsoft\\Internet Explorer\\PageSetup\\";
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, "");
} catch (e) { }
}
但是这样打印IE的页边距比较宽,所以相对chrome有点被缩放的感觉,但是整体还可以没有很夸张
目前在chrome内核浏览器和IE实验成功,好用
指定部分内容打印
[javascript] view
plain copy
function doPrint() {
bdhtml = window.document.body.innerHTML;
sprnstr = "<!--startprint-->";
eprnstr = "<!--endprint-->";
prnhtml = bdhtml.substr(bdhtml.indexOf(sprnstr) + 17);
prnhtml = prnhtml.substring(0, prnhtml.indexOf(eprnstr));
window.document.body.innerHTML = prnhtml;
if (getExplorer() == "IE") {
pagesetup_null();
}
window.print();
}
我的需求是打印图片,所以在我图片的部分
[html] view
plain copy
<!--startprint-->
<img id="image_ZKZ" runat="server" src="" />
<!--endprint-->
增加了上述用于截断字符串的内容,这样通过doPrint()方法就能够截取到指定的图片内容了
这种情况下打印使用chrome是正常打印,并且没有页眉页脚,但是IE则仍然有,于是在 doPrint() 方法中使用了getExplorer() 方法来获取浏览器类型,以及pagesetup_null() 来去掉IE的页眉页脚,两个方法如下:
[javascript] view
plain copy
// 获取浏览器
function getExplorer() {
var explorer = window.navigator.userAgent;
//ie
if (explorer.indexOf("MSIE") >= 0) {
return "IE";
}
//firefox
else if (explorer.indexOf("Firefox") >= 0) {
return "Firefox";
}
//Chrome
else if (explorer.indexOf("Chrome") >= 0) {
return "Chrome";
}
//Opera
else if (explorer.indexOf("Opera") >= 0) {
return "Opera";
}
//Safari
else if (explorer.indexOf("Safari") >= 0) {
return "Safari";
}
}
[javascript] view
plain copy
// IE设置去除页眉页脚
function pagesetup_null() {
var hkey_root, hkey_path, hkey_key;
hkey_root = "HKEY_CURRENT_USER";
hkey_path = "\\Software\\Microsoft\\Internet Explorer\\PageSetup\\";
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, "");
} catch (e) { }
}
但是这样打印IE的页边距比较宽,所以相对chrome有点被缩放的感觉,但是整体还可以没有很夸张
相关文章推荐
- 使用JS打印网页内容及图片
- 使用JS打印网页内容及图片
- js 实现打印网页中定义的部分内容的代码
- js打印网页中的部分内容
- 使用URL类打印网页内容
- js实现网页的过滤打印(去掉你不想出现的内容)
- js网页打印指定区域内容
- 使用javascript对网页的部分内容进行打印
- Android使用WebView显示网页(图片大小的处理及内容的自适应)
- 使用网页代码“截取”功能,打印页面某段定义区域内容
- ie浏览器使用js导出网页到excel并打印
- 使用unslider.js图片轮播插件创建一个能轮播24节气的网页
- JS实现打印网页内容
- js 打印网页指定内容
- 使用HtmlUnit模拟浏览器执行JS来获取网页内容
- 网页内容使用JS导出为excel
- 使用网页代码“截取”功能,打印页面某段定义区域内容
- 使用JS禁止页面打印,右击保存图片
- JS 打印网页局部内容
- 网页图片延迟加载LazyLoad.js使用方法介绍和实例