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

使用 RSClientPrint 直接列印本地 RDLC 報表

     編輯:關於ASP.NET

前言

ReportViewer 列印本地 RDLC 報表需點擊多次,體驗不佳。RSClientPrint ActiveX 控制項常用於 SSRS 遠端報表,本文探索其直接列印本地報表的可行性。

測試 HTML 原型

<!DOCTYPE html>
<html xmlns="https://www.w3.org/1999/xhtml">
<head><title></title></head>
<BODY onload="Print()">
<OBJECT ID="RSClientPrint"
    classid="CLSID:5554DCB0-700B-498D-9B58-4E40E5814405"
    CODEBASE="/RSClientPrint-x86.cab" VIEWASTEXT></OBJECT>
<script type="text/javascript">
function Print(oid, name) {
    if (typeof RSClientPrint.Print == "undefined") {
        alert("Unable to load client print control.");
        return;
    }
    RSClientPrint.MarginLeft = 0;
    RSClientPrint.MarginTop = 0;
    RSClientPrint.MarginRight = 0;
    RSClientPrint.MarginBottom = 0;
    RSClientPrint.PageHeight = 296.926;
    RSClientPrint.PageWidth = 210.058;
    RSClientPrint.Culture = 2052;
    RSClientPrint.UICulture = 2052;
    RSClientPrint.UseSingleRequest = true;
    RSClientPrint.UseEmfPlus = true;

    RSClientPrint.Print("https://localhost:2940/JDCJY/ReportHandler.ashx",
        "oid=" + escape(oid) + "&name=" + escape(name), "test");
}
</script>
</BODY>
</html>

關鍵實作步驟

  1. 伺服器端部署 RSClientPrint-x86.cab(含 32/64 位元版本)。
  2. 建立 ReportHandler.ashx 實作 IReportServerConnection2,回傳本地 RDLC 渲染的 EMF/PDF 串流。
  3. 客戶端頁面引用 ActiveX,設定頁邊距、紙張大小、文化特性。
  4. 呼叫 Print(reportUrl, parameters, docName) 直接送印。

注意事項

  • 僅支援 IE / Edge IE 模式,現代瀏覽器需改用 PDF.js 或列印 CSS 方案。
  • ActiveX 需使用者允許安裝,企業環境可透過群組原則預先部署。
  • 本地報表無 ReportServer,需自行實作渲染延伸模組。

總結

透過 RSClientPrint 可實現本地 RDLC 報表一鍵列印,大幅提升使用者體驗,但需評估瀏覽器相容性與部署成本。

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