asp.net中一实现按需打印
这篇文章将为大家详细讲解有关asp.net中一实现按需打印,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
过程很简单:
首先在asp.net页面中设定开始打印和结束打印的标记,为了确保该标记不在网页浏览时显示,我们采用""的方式。比如:和。
接着写相关的JavaScript代码,具体代码见后。
如果不想打印按钮也被打印出来,注意将打印按钮包含在和之外。
相关代码:
复制代码 代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="AppealPrint.aspx.cs" Inherits="Appeal.AppealPrint"
MasterPageFile="MasterPage.master" Title="诉求打印" %>
诉 求 信 息 诉求主题: 诉求类型: 诉求当前状态: 诉求性质: 被投诉人姓名: 被投诉人地址: 投诉人: 诉求信息是否保密: 管理员是否同意公开: 浏览数: 回复数: 归档: 诉求提交时间: 诉求所在地域: 诉求内容:
";
eprnstr = "";
prnhtml = bdhtml.substr(bdhtml.indexOf(sprnstr) + 17);
prnhtml = prnhtml.substring(0, prnhtml.indexOf(eprnstr));
window.document.body[xss_clean] = prnhtml;
var obj = window.document.body;
doZoom(obj, 18); //放大打印
window.print();
}
function doZoom(artibody, size) {
if (!artibody)
{
return;
}
setChildNodesByCurrentNode(artibody,size);
}
function setChildNodesByCurrentNode(node,size) {
for(var i=0; i < node.childNodes.length; i++) {
var artibodyChild = node.childNodes[i];
if (artibodyChild.nodeType == 1) {
artibodyChild.className="";
artibodyChild.style.fontSize = size + 'px';
artibodyChild.style.fontFamily = '仿宋_GB2312,宋体,"Times New Roman",Georgia,serif';
artibodyChild.style.fontWeight = 900;
if(artibodyChild.childNodes.length>0) {
setChildNodesByCurrentNode(artibodyChild,size);
}
}
}
}
-->
观察上面代码可以看出,打印时,window.document.body[xss_clean] 被重新赋值成设定需要打印的网页部分的代码(这里是 prnhtml),然后通过递归方式调用setChildNodesByCurrentNode(artibody,size)更改相关子节点的样式,以达到全部更换相关字体大小及样式设置的目的。
关于"asp.net中一实现按需打印"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。