首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

Web 列印解決方案之普通報表列印

     編輯:關於ASP.NET

傳統方案:Script 控制 PrintControl

常見做法:JS 呼叫 PrintControl.ExecWB() 實現直接列印/預覽。效果與控制力一般,但能應付基本需求。

核心 JS 函式

// preview: true=預覽, false/null=直接列印
function printPage(preview) {
    try {
        var content = document.body.innerHTML;
        var oricontent = content;
        // 隱藏標記 {$printhide} → style='display:none'
        while(content.indexOf("{$printhide}") >=0) content = content.replace("{$printhide}", "style='display:none'");
        // 注入 PrintControl ActiveX
        if(content.indexOf('ID="PrintControl"') <0)
            content += '<OBJECT ID="PrintControl" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
        document.body.innerHTML = content;
        // ExecWB 命令: 6=列印, 7=預覽, 1=提示, 6=直接
        if(preview==null||preview==false) PrintControl.ExecWB(6,1);
        else PrintControl.ExecWB(7,1);
        document.body.innerHTML = oricontent; // 還原
    } catch(ex){ alert("JS 執行錯誤。"); }
}

// 列印指定區塊 HTML
function printConten(preview, html) {
    try {
        var content = html;
        var oricontent = document.body.innerHTML;
        while(content.indexOf("{$printhide}") >=0) content = content.replace("{$printhide}", "style='display:none'");
        if(content.indexOf('ID="PrintControl"') <0)
            content += '<OBJECT ID="PrintControl" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>';
        document.body.innerHTML = content;
        if(preview==null||preview==false) PrintControl.ExecWB(6,1);
        else PrintControl.ExecWB(7,1);
        document.body.innerHTML = oricontent;
    } catch(ex){ alert("JS 執行錯誤。"); }
}

頁面調用範例

<script>
function Print(preview) {
    var text = document.getElementById("content").innerHTML;
    printConten(preview, text);
}
</script>

將欲列印區塊包在 <div id="content"> 中,按鈕呼叫 Print(true/false) 即可。利用 {$printhide} 標記隱藏不想列印的區域。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved