[SSRS] HTML 形式で表示したレポートと PDF や印刷で表示したレポートの見栄えが異なる。対処方法は!?

 

山崎 実久
SQL Developer Support Engineer

SQL Server Reporting Services (SSRS) を利用してレポートをデザインし、PDF にエクスポートした場合や印刷した場合、デザインした通りにレポートのフォーマットを構成できない場合があります。
例えば、レポートのデザイン時にはなかった予期せぬ箇所での改行や、罫線の太さが異なるなどが挙げられます。

では、そういった場合どう対処すればよいか? また、なぜ見栄えが変わるのか? について、本 blog で説明します。

1. どのように対処するか?

 

対処方法は 3 つあります。  

 A) デザインを変更する。

 B) 用途に応じたレポートをそれぞれ用意する。

 C) 最新の修正プログラムを適用する。

 

それぞれ詳細を説明します。

A) デザインを変更する。 HTML 形式や Word, Excel でエクスポートされたレポートの見栄えを重視するか、それとも PDFでのエクスポートや印刷されたレポートの見栄えを重視するか判断し、優先した方のフォーマットで運用する。
 

B) 用途に応じたレポートをそれぞれ用意する。

HTML 形式や Word, Excel でエクスポートするためのレポートと、PDFでエクスポートするためのレポートや印刷用のレポートと複数レポートを用意し、目的に合わせ使い分ける。

C) 最新の修正プログラムを適用する。

製品の制限や不具合に関する問題か否か確認するため、Reporting Services のバージョンを確認し、SQL Server 最新モジュールと照らし合わせ、最新でない場合は、最新のモジュールを適用します。少なくとも最新のサービスパックが適用されていることを確認します。

本記事作成時の最新のモジュール情報は、SQL Server の最新モジュール情報 (まとめページ) で確認することが可能です。
   

 

2. どうして見栄えが変わるのか?

 

SQL Server Reporting Services では 、レポートを処理する際、Report ProcessingData Processing、 Report Rendering の 3 つの工程を経てレポートを出力します。

 

レポートの処理工程

 処理内容の概要

Report Processing

 レポート定義のレイアウト情報と取得したデータを組み合わせる。

 Data Processing

 データベースに接続しデータを取得する

 Report Rendering

 レポートを HTML や Word, Excel や PDF などの形式で出力する。

 

上記工程の Report Rendering では、以下のような複数の レンダラ― (Renderer) を利用します。表示したいレポートの形式に合わせて、Renderer が選択されます。

 

 レンダラ― (Renderer)  説明
 ATOM デバイス情報の設定       Atom 準拠の表示出力に関連するデバイス情報設定 
 CSV デバイス情報設定   CSV 表示出力に関連するデバイス情報設定
 Excel デバイス情報設定  Excel 表示出力に関連するデバイス情報設定
 Word デバイス情報設定  Word 表示出力に関連するデバイス情報設定
 HTML デバイス情報設定  HTML 表示出力に関連するデバイス情報設定
 画像デバイス情報設定  IMAGE 表示出力に関連するデバイス情報設定
 MHTML デバイス情報設定  MHTML 表示出力に関連するデバイス情報設定
 PDF デバイス情報の設定  PDF 表示出力に関連するデバイス情報設定
 XML デバイス情報設定  XML 表示出力に関連するデバイス情報設定
 RGDI デバイス情報の設定  RGDI 表示出力に関連するデバイス情報設定

 

上記の表の通り、Excel としレポートを出力するのか、PDF としてレポートを出力するのかによって、SSRS で利用されるレンダラ―が異なることが分かります。

この利用されるレンダラーの違いにより、レポートの見栄えも変わるというのが、本事象です。

その他、レポートを Excel の xls 形式で出力した場合と、xlsx 形式で出力した場合の見栄えの違いも、レンダラーの違い、Excel 2003 レンダラーを利用するか、Excel レンダラーを利用するかの違いにより発生します。

HTML 形式で見たレポートのデザイン通りに、印刷したい場合や、PDF に出力したい場合でも、上記 SSRS の最適化の動作により、見栄えがどうしても変わってしまいます。

HTML 形式の見栄えを良くするか、印刷、PDF の見栄えを良くするかはトレードオフとなり、両方選択することができません。

 

+ 参考情報
レンダリングの動作 (レポート ビルダーおよび SSRS)
https://technet.microsoft.com/ja-jp/library/dd255244.aspx

 

 

以上、レポート表示の際に遭遇する問題について、参考になれば幸いです。