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

水晶報表 Web 列印的四種方法

     編輯:關於ASP.NET

官方四大列印方案

  1. Viewer 工具列「列印」按鈕 → 匯出 PDF:客戶端需裝 PDF 閱讀器。
  2. Viewer 工具列「匯出」按鈕 → 匯出客戶端可列印格式(Word、Excel、RTF 等)。
  3. 伺服器端 PrintToPrinter 直接列印:需伺服器連接印表機、權限足夠,安全性/存取權常成阻礙。
  4. 將報表渲染為單一長頁,用瀏覽器列印:
    CrystalReportViewer1.SeparatePages = false;
    CrystalReportViewer1.DisplayGroupTree = false;
    CrystalReportViewer1.DisplayToolbar = false;

    缺點:無法控制頁首/頁尾/分頁位置。

替代方案

  • 購買第三方 Web 列印控件(成本較低,效果須自行評估)。
  • CSS + JavaScript 自訂列印:
    用 @media print { .noprint {display:none} } 隱藏不列印區塊,JS 重組列印版面並呼叫 window.print(),列印後 window.history.go(0) 返回原頁。靈活度高、無元件相依。

JS 列印函式範例

function DP() {
    if (!window.print) return;
    var Div1 = document.all.Div1.innerHTML;
    var Div2 = document.all.Div2.innerHTML;
    var css = '<style type="text/css" media=all> p{line-height:120%} .ftitle{font-size:18px} td{font-size:10px} </style>';
    var body = '<table width=640><tr><td class=fbody><div class=ftitle>' + Div1 + '</div>' + Div2 + '</td></tr></table>';
    document.body.innerHTML = '<center>' + css + body + '</center>';
    window.print();
    window.history.go(0);
}

頁面以 <div id=Div1><div id=Div2> 標記列印區域,class=noprint 排除區塊。

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