6

背景画像を使用したいのですが、Reporting Services 2008 R2に入れると、画像のdpiが96dpiになります。(300ではなく)

それは低すぎてユーザーが読めないのではないかと心配しています。

私がインターネットに行くとき、私はこの結果を見つけます:

http://social.technet.microsoft.com/Forums/en-US/sqlreportingservices/thread/48de91f9-1844-40c1-9614-5ead0b4b69a5#P1Q14

質問14:Reporting Services 2005でエクスポートされたレポートのPDF品質を向上させる方法は?

回答:Reporting Services 2005のPDFレンダラーは、レンダラーに渡すときに画像がどのDPIであるかに関係なく、96DPIで提供されるすべての画像のサイズを変更します。つまり、300DPIの画像または600DPIの画像でさえ、96DPIであるかのようにPDFでサイズ変更されます。つまり、高DPI画像が予想よりも大きくレンダリングされる可能性があります。
画像のサイズを96DPIであるかのように設定しているにもかかわらず、PDFレンダラーは96DPIよりも高品質で高DPI画像をレンダリングしているように見えます。サイズが間違っていても、実際には画像はより高品質でレンダリングされています。必要な回避策は、96 DPI計算に基づいて、画像を適切なインチ数にサイズ変更することです。次に、Bitmap.SetResolutionを使用して、画像を少なくとも300DPIに設定します。これにより、レポートに適切に収まる適切なピクセル数である高品質の画像が提供される場合があります。

しかし、そのBitmap.SetResolutionの使用方法がわかりません。従来のレポートビューアのWebコントロールを使用しており、完全に機能するpdfエクスポートが本当に必要です。

PS:たぶんその問題はReporting Services 2012で解決されています。誰かがいくつかの情報を持っていますか?

よろしく

4

3 に答える 3

4

良いdpiでPDFをエクスポートする方法を説明するウェブページを見つけました。http://codeproject.com/Articles/95750/High-fidelity-printing-through-the-SSRS-Report-Vie

重要なのは、deviceInfo文字列をxmlコードで初期化することです

       var sb = new System.Text.StringBuilder(1024);
       var xr = System.Xml.XmlWriter.Create(sb);
       xr.WriteStartElement("DeviceInfo");
       xr.WriteElementString("DpiX", "296");
       xr.WriteElementString("DpiY", "296");
       xr.Close();

        deviceInfo = sb.ToString();

        rsExec.SetExecutionParameters(parameters, "fr-fr");

        results = rsExec.Render(format, deviceInfo,
                  out extension, out encoding,
                  out mimeType, out warnings, out streamIDs);

この場合、このソリューションは機能します。良好なdpiでPDFファイルを生成できますが、ActiveXの印刷ボタンが機能せず(これは問題にならないはずです)、エクスポートボタンも機能しません。印刷するにはダウンロードボタンを追加する必要があります。それは部分的な解決策です

于 2012-12-07T15:37:59.843 に答える
1

Reporting ServicesへのWebAPIインターフェイスを使用する場合、次のように機能することがわかりました。

画像のより良いPDFレンダリングを取得するには、次のようにデバイス情報を渡します。 http://serverName/ReportServer?/pathtoReport/ReportName&InvoiceIdOrOtherParameter=24013&rs:Command=Render&rs:Format=PDF&rs:DeviceInfo=<DpiX>300<%2FDpiX><DpiY>300<%2FDpiY>

于 2017-05-19T11:57:42.657 に答える
0

上記の答えは私をこれに導きました、しかし私は異なるコーディングプラットフォームを使用している人々のために明確にしたかったです。目標は、DeviceInfoパラメーターとして送信される次の文字列を作成することです。

    DeviceInfo = '<DeviceInfo><DpiX>300</DpiX><DpiY>300</DpiY></DeviceInfo>'

これにより、300dpiの画像を背景画像として使用し、PDFに正しくレンダリングすることができましたが、プレビューにはまだはるかに大きい画像が表示されるため、reportviewerでデザインしているときに画像を非表示にする方法を見つける必要があります。

于 2020-07-08T21:28:25.400 に答える