2012-03-01 18 views
0

Crystal Reportレポートを印刷するASP.NETアプリケーションを作成しました。問題は、レポートがServer Printerで印刷され、Webアプリケーションであるためクライアントマシンで印刷する必要があることです。ASP.NETのクライアントサイドでのCrystalレポートの印刷C#

結晶レポートビューアなしで印刷するには、PrintToPrinter(1, false, 0, 0)メソッドを使用しています。

クライアント側で印刷する方法があるかどうかは誰か知っていますか?そうでなければ; ASP.Netアプリケーションのクライアント側でレポートを生成するにはどうすればよいですか?あなたが/行うクライアントマシンに印刷するレポートを取得しようとする必要がありますどのようなここ

javascript:window.print(); 
+0

Crystalで何かしてからしばらくしていますが、レポートをPDFにレンダリングするオプションがあるかどうか確認してください。これをクライアントに送信することができます。自動的には印刷されませんが、PDFビューアを持っていれば、Crystalがインストールされていなくてもインストールできます。 –

答えて

0

ベストな方法は、リンクの呼び出しを使用してページの「HTML印刷可能バージョン」を設計することです行の下

印刷プレビューにラインの下

crystalReportViewer1.PrintReport(); 

を表示せずに印刷するには[印刷]ダイアログボックスを開き、直接プリンタをデフォルトにReportDocumentをを送信します。

oReportDocument.PrintToPrinter(1,true,0,0); 
0

Crystalレポートビューアはサーバー側のコントロールであり、クライアントに簡単に印刷する方法はありません。レポートをPDFにエクスポートし、埋め込まれたPDFビューアとJavaScriptを組み合わせてPDFを印刷することで、過去にこれを達成できました。

// On server side 
// Export to PDF 
Guid imageGuid = Guid.NewGuid(); 
string pdfName = String.Format(@"{0}{1}{2}.pdf", pdfPath, reportName, imageGuid); 
// expport to unique filename 
report.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, pdfName); 

// Display the pdf object in a literal control (mine's called pdfLiteral) 
sb.AppendFormat("<object ID=\"pdfObject\" type=\"application/pdf\" data=\"{0}\" src=\"{0}\" style=\"width: 2px; height: 2px; ", pdfName); 
sb.AppendLine("z-index:1; display: block; top: 0; left: 0; position: absolute; \">"); 
sb.Append("</object>"); 
pdfLiteral.Text = sb.ToString(); 
pdfLiteral.Visible = true; 

// client side 
// on document load call the printWithDialog function 
var code = function(){ 
    var pdf = document.getElementById('pdfObject'); 
    if (pdf == null) 
     return; 
    try { 
     pdf.printWithDialog(); 
    } 
    catch (err) { 
     alert('Please Install Adobe Acrobat reader to use this feature'); 
    } 
    }; 
// window onload, with delay 
window.setTimeout(code, 1000); 

参照:https://stackoverflow.com/a/25994086/474702

注:これはChromeで適切に機能しますが、クライアントはアクロバットリーダーデフォルトのPDFビューアとしてインストールしている場合、それはIEのみで動作します。

関連する問題