3

RDLC ファイルを使用してレポートを生成しています。レポートに棒グラフを含むグラフがいくつかあります。レポートを PDF にエクスポートすると、グラフの解像度がかなり悪く、棒グラフがピクセル化されます。RDLC のローカル モードで実行されるレポートに対して、より高い解像度の PDF を定義することはできますか?

ReportServer を介して生成された pdf をより高い解像度にすることができるというこのリンクを見つけました。しかし、この構成ファイルがどこにも見つかりません。 http://msdn.microsoft.com/en-us/library/ms154682.aspx

RDLC ファイルの制限ですか? RDLC ファイルは実行可能ですか?

ありがとうございました!

4

3 に答える 3

2

この問題の回避策を見つけました。reportviewer の設定では PDF の dpiX と dpiY を変更できない場合がありますが、C# を使用して PDF を手動でエクスポートまたはレンダリングすることで変更できます。はこれを行い、XML のパラメータでReport.Render()dpiX および dpiY 値を使用します。<deviceinfo>これを行うコードは次のとおりです。

        string reportype = "PDF";
        string mimeType;
        string encoding;
        string fileNameExtension;

        string devinfo = "<DeviceInfo><ColorDepth>32</ColorDepth><DpiX>350</DpiX><DpiY>350</DpiY><OutputFormat>PDF</OutputFormat>"+
        "  <PageWidth>8.5in</PageWidth>" +
         "  <PageHeight>11in</PageHeight>" +
         "  <MarginTop>0.5in</MarginTop>" +
         "  <MarginLeft>0.5in</MarginLeft>" +
          "  <MarginRight>0in</MarginRight>" +
          "  <MarginBottom>0in</MarginBottom>" +
        "</DeviceInfo>";

        Warning[] warnings;
        string[] streams;
        byte[] renderedBytes;

        renderedBytes = this.reportViewer1.LocalReport.Render(reportype, devinfo, out mimeType,

    out encoding,

    out fileNameExtension,

    out streams,

    out warnings);

        using (FileStream fs = new FileStream("output3.pdf", FileMode.Create))
        {
            fs.Write(renderedBytes, 0, renderedBytes.Length);
        }
于 2013-07-31T17:57:58.047 に答える