2

私のasp.net mvc3(Razor)アプリケーションではrdlc、レポートに使用しています。印刷目的のために私はちょうどneed to convert the rdlc into image。次のコードを試しました

   public ActionResult FilePrint()
    {
        LocalReport localReport = new LocalReport();

        localReport.ReportPath = @"Reports/OP/Rdlc/ClinicInvoiceReceipt.rdlc";

        iClinicInvoiceReceipt = new RmtOPInvoice.ClinicInvoiceReceipt();
        DataTable dt = iClinicInvoiceReceipt.SelectReceiptDtlForPrint(2);

        ReportDataSource reportDataSource = new ReportDataSource();
        reportDataSource.Value = dt;
        reportDataSource.Name = "DataSet1";
        localReport.DataSources.Add(reportDataSource);

        string reportType = "Image";
        string mimeType;
        string encoding;
        string fileNameExtension;
        Warning[] warnings;

        string[] streams;

        byte[] renderedBytes;
        //Render the report

        renderedBytes = localReport.Render(
            reportType,
            null,
            out mimeType,
            out encoding,
            out fileNameExtension,
            out streams,
            out warnings);

        return File(renderedBytes, "Image");
  }

とビューで

 <img src="@Url.Action("FilePrint","ClinicInvoiceReceipt")" />

しかし、それは機能しません。どうすればこれを達成できますか?誰か知っているなら共有してください。

4

1 に答える 1

4

DeviceInfo 設定がありません。次のように DeviceInfo 設定を作成します。

 string deviceInfo =
        "<DeviceInfo>" +
        "  <OutputFormat>JPEG</OutputFormat>" +
        "  <PageWidth>8.5in</PageWidth>" +
        "  <PageHeight>11in</PageHeight>" +
        "  <MarginTop>0.4in</MarginTop>" +
        "  <MarginLeft>0.6in</MarginLeft>" +
        "  <MarginRight>0.6in</MarginRight>" +
        "  <MarginBottom>0.4in</MarginBottom>" +
        "</DeviceInfo>";

変更する

renderedBytes = localReport.Render(
        reportType,
        null,
        out mimeType,
        out encoding,
        out fileNameExtension,
        out streams,
        out warnings);

return File(renderedBytes, "Image");

renderedBytes = localReport.Render(
        reportType,
        deviceInfo ,
        out mimeType,
        out encoding,
        out fileNameExtension,
        out streams,
        out warnings);

return File(renderedBytes, "image/jpeg");

他の画像タイプについては、画像デバイス情報の設定をご覧ください。

于 2013-01-28T20:42:55.877 に答える