这篇文章将为大家详细讲解有关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.innerHTML =  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.innerHTML 被重新赋值成设定需要打印的网页部分的代码(这里是 prnhtml),然后通过递归方式调用setChildNodesByCurrentNode(artibody,size)更改相关子节点的样式,以达到全部更换相关字体大小及样式设置的目的。
关于“asp.net中一实现按需打印”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。