12

さまざまなソースから収集された画像(jpg)をレンダリングするレポートがあります。これは、レポートビューア内、およびExcel経由でエクスポートする場合に正常に機能します。

ただし、PDFにエクスポートする場合、以下に示すように、画像の約5%が正しくレンダリングされず、元の画像が左側に、何が右側に表示されます。

ここに画像の説明を入力してください レンダリングされた画像画像

これらの画像の1つをmspaintで開き、[保存]をクリックすると、次のレポートで画像が正しくレンダリングされるようになります。

SSRSがPDF内で画像を正しくレンダリングするために有効な画像プロパティ/形式に関する規則はありますか?基本的に、レポートが実行される前に正しくレンダリングされないこれらの画像を見つけて、事前に修正したいと思います...

4

4 に答える 4

6

現在の回避策

SSRSに問題のある画像をそのまま表示させることはできませんでしたが、レポートを実行する前に、サポートされている形式に(自動的に)変換できるように、表示できないセットにどの画像を含めるかを決定することも解決策でした。 。

私の場合、すべての画像はWebサイトにアップロードするユーザーを介して提供されたため、到着した画像を識別して変換することができました。既存のすべての画像について、問題のある画像を特定して変換するスクリプトを実行することができました。

問題のある画像の特定

私が持っていた何千もの画像から、正しくレンダリングされない画像には次の特性があることがわかりました。

  1. 画像にCMYK色空間または;
  2. 画像のカラープロファイルが拡張されている、または;
  3. 上記の両方

画像の変換

私はもともと標準の.NETGDI()を使用して画像を操作していましたが、余分なデータがある画像を処理するときSystem.DrawingにAPIがクラッシュする傾向があります( )。そのため、私はImageMagickOutOfMemoryExceptionの使用に切り替えました。ここで、識別された画像のそれぞれについて、次のようになります。

  1. カラープロファイルを削除し、;
  2. RGBに変換

カラープロファイルを削除せずにCMYKからRGBに変換するだけでは、すべての画像を適切にレンダリングするには不十分であることに注意してください。

アップロードされた画像をディスクに保存する前に、ユーザーから受け取ったすべての画像バイトストリームで(最初に問題を特定せずに)これらの項目を実行することになりました。その後、レンダリングの問題は二度と発生しませんでした。

于 2015-07-31T03:17:05.897 に答える
4

出力の外観のため、これらのJPEG画像にはCMYK色空間があると思いますが、SSRSはRGB色空間を使用していると想定し、PDFで間違った色空間を設定します。
JPEG画像とサンプルPDFを投稿できれば、詳細をお知らせします。

于 2013-03-27T09:13:58.007 に答える
2

画面上で画像が正しくレンダリングされるのとまったく同じ問題が発生しましたが、レポートをPDFにエクスポートしたときに問題のように表示されます。これが私がそれを解決した方法です。

問題

最初の手がかりは、MSDNで出会ったこの記事でした。元の画像の濃度に関係なく、SSRSのPDFレンダラーはすべての画像のサイズを96DPIに変更しているようです。画像の元のサイズがページ(またはコンテナ)のサイズよりも大きい場合、この問題が発生します。

ソリューション

解決策は、ページに収まるようにソース画像のサイズを変更することです。ページサイズと余白の設定に応じて、少し計算する必要があります。

私の場合、21cm×29.7cmのA4用紙サイズを使用しています。ただ、左マージンは1.5cm、右マージンは0.5cmで、全内幅は19cmです。許容誤差として0.5cm余分に許容するので、18.5cmの内側の幅を使用します。

21 cm - 1.5 cm - 0.5 cm - 0.5 cm = 18.5 cm

前述のように、PDFレンダラーによって生成される解像度は96 DPI(dots per inch)です。米国またはリベリア共和国にいない私たちの場合、それは37.79 DPC(センチメートルあたりのドット数)です。だから、私たちの幅を取得するには:

18.5 cm * 37.79 dpc = 699 pixels

(1)使用している用紙サイズ、および(2)左右の余白によって、結果が異なる場合があります。

ページは幅よりも高いため、画像の比率を維持しながら幅のサイズを変更するだけで済みます。高さよりも幅の広い用紙サイズを使用している場合は、代わりに長さを使用します。

そこで、ペイント(または選択した画像エディタ)でソース画像を開き、画像をピクセル単位で目的の幅(または長さ)に比例してサイズ変更し、保存してコンテナにインポートし、画像のサイズを視覚的に調整します。コンテナ。画面上では同じように見え、PDFに正しくレンダリングされるはずです。

于 2014-12-18T00:33:50.690 に答える
0

これは、MicrosoftConnectに報告された問題です。
SSRS 2008から可能な限り最高の画質を得るには?

PDFに表示される画像の動作は、PDF仕様で画像をPDFにシリアル化する方法に基づいて、PDFレンダラーが行ういくつかの画像変換の結果です。

私たちはそれが理想的ではないことを知っており、画質の低下を製品の問題として分類しています。したがって、最高品質の画像を取得するために何をすべきかを実際に言うことは困難です。

ちなみに、元の画像がBMPの場合、お客様は良い結果を出すと聞いています。

于 2014-12-17T19:37:09.633 に答える