![](/img/trans.png)
[英]How to directly print rdlc report without showing PrintDialog() in C#?
[英]Print RDLC report from server in C#
我正在創建RDLC報告並從ASP.Net打印它。 當我在本地計算機上嘗試此方法時,它工作正常。 但是在服務器中部署時,打印機設置無效。
//碼
if (m_streams == null || m_streams.Count == 0)
throw new Exception("Error: no stream to print.");
PrintDocument printDoc = new PrintDocument();
// printDoc.PrinterSettings.PrinterName = "HP LaserJet 3055 PCL5";
if (!printDoc.PrinterSettings.IsValid)
{
throw new Exception("Error: cannot find the default printer.");
}
else
{
printDoc.PrintPage += new PrintPageEventHandler(PrintPage);
m_currentPageIndex = 0;
printDoc.Print();
}
從上面的代碼,它引發了一個異常“找不到默認打印機”。 嘗試添加客戶端計算機中存在但仍然無法使用的打印機名稱。
我需要在客戶端計算機上打印報告。
不知道在哪里更改。 有什么幫助嗎?
我相信你正在做你應該做的事情。
如果您有ASP.NET網站,則該網站中有RDLC報告。 如果我訪問該報告,則想在我的機器上打印,而不是在服務器上打印。 您確定要使服務器打印報告嗎? 客戶/瀏覽器不應該發出打印命令嗎?
如果您的服務器在數據中心中,而我在家里,則應在哪里進行打印? 除非要在服務器上打印(例如,郵件合並貼紙)。
據我所知,無法訪問客戶端的打印機設置。 您正在執行的操作是訪問服務器打印機,如果正確的話,則未安裝該打印機。
您可以通過調用javascript中的window.print()
來打印訪問的瀏覽器/ javascript功能,因為瀏覽器正在運行客戶端並且可以訪問打印機。 但是直接訪問客戶端系統資源將是一個巨大的安全漏洞。
也許有一個晦澀的解決方法/黑客,但這將是一個糟糕的解決方案
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.