【问题标题】:Reportviewer print button in Google ChromeGoogle Chrome 中的 Reportviewer 打印按钮
【发布时间】:2012-02-14 11:56:39
【问题描述】:

据我所知,reportviewer 打印按钮在 Google Chrome 和 Firefox 中不起作用,因为它是由仅在 IE 中起作用的 ActiveX 控件制成的。所以我试图在报告之外制作一个 asp.net 按钮并以编程方式打印报告,但这很痛苦,我想知道是否有更简单的解决方法可以让报告在 Google Chrome 中打印。

编辑/更新:我发现这个报告查看器打印按钮应该适用于 Firefox 和 Google Chrome,它似乎适用于 Firefox,但它会在 Google Chrome 中为我打印一个空白页。 http://cafalse.blogspot.com/2011/04/reportviewer-print-button-for-firefox.html

【问题讨论】:

    标签: asp.net google-chrome reportviewer


    【解决方案1】:

    如果您不介意在页面的某处添加自己的按钮。这仅在您生成报告的方式与我的相似时才有效。基本上,我获取报告,将其呈现为字节并将这些字节作为 pdf 格式的响应发送。这会将文件打开为大多数浏览器(如 Chrome)支持的 PDF。这需要用户采取额外的步骤并点击打印。

    ServerReport sr = new ServerReport();
    ReportViewer.ProcessingMode = ProcessingMode.Remote;
    sr = ReportViewer.ServerReport;
    sr.ReportServerUrl = new Uri("http://****/****");
    sr.ReportPath = "/Report";
    ReportParameter paramDateFrom = new ReportParameter();
    ReportParameter paramDateTo = new ReportParameter();
    ReportParameter paramState = new ReportParameter();
    ReportParameter paramCounty = new ReportParameter();
    string dateFrom = TB_Date_From.Text;
    string dateTo = TB_Date_To.Text;
    string state = DDL_State.SelectedValue;
    string county = DDL_County.SelectedValue;
    paramDateFrom.Name = "DateFrom";
    paramDateFrom.Values.Add((dateFrom != "" ? dateFrom : null));
    paramDateTo.Name = "DateTo";
    paramDateTo.Values.Add((dateTo != "" ? dateTo : null));
    paramState.Name = "State";
    paramState.Values.Add((state != "" ? Common_Functions.resolveStateID(state) : null));
    paramCounty.Name = "County";
    paramCounty.Values.Add((county != "" ? Common_Functions.resolveCountyID(county) : null));
    ReportViewer.ServerReport.SetParameters(new ReportParameter[] { paramDateFrom, paramDateTo, paramState, paramCounty });
    // DUMP PDF TO BROWSER
    Warning[] warnings;
    string[] streamids;
    string mimeType, encoding, extension;
    byte[] bytes = ReportViewer.ServerReport.Render("PDF", null, out mimeType, out encoding, out extension, out streamids, out warnings);
    Response.Buffer = true;
    Response.Clear();
    Response.ContentType = mimeType;
    Response.AddHeader("content-disposition", "inline; filename=myfile." + extension);
    Response.BinaryWrite(bytes);
    string pdfPath = Server.MapPath("~") + "pdf." + extension;
    FileStream pdfFile = new FileStream(pdfPath, FileMode.Create);
    pdfFile.Write(bytes, 0, bytes.Length);
    pdfFile.Close();
    Response.Flush();
    Response.End();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多