web-dev-qa-db-ja.com

PDFの1ページのRDLCレポートを制限する方法は?

RDLCレポートがあり、それをフロントエンドアプリケーションのレポートビューアーコントロールに表示しています。レポートは完全に表示できます。

しかし、レポートをPDF(組み込みオプションを使用)にエクスポートしようとすると、問題が発生します。

レポートを3ページで印刷しますが、クライアントは1ページに収めたいと考えています。レポートビューアでは1ページしか表示されないため、その理由を理解できませんが、PDFには3ページあります。

レポートのサイズを制御できるように、それに対して何かを行うことができますか?

28
Arvind

答えはDuganの発言とかなり似ていますが、必ずしもマージンだけではありません。ただし、これは非常に簡単です。

デザインモードでrdlcファイルを編集するときは、まずデザインのBODY領域の空の部分をクリックします。 F4キーを押して、プロパティタブを表示します。ここでは、「サイズ」プロパティが表示されます。これは、幅と高さを拡張できます。ここに表示される幅は、レポートの本文に印刷可能な領域として必要な幅を表しています。全体に空白がある場合でも、ページは印刷可能な領域として保持する必要があることを認識しています。ある意味でスペースを確保します。高さについては、コントロール内で特に指定しない限り、システムは通常、必要に応じて拡大または縮小できることを認識しています。したがって、幅は通常、最も重要な役割を果たすものです。

次に、レポートの空の領域(ヘッダー、本文、フッターの外、基本的にはデザインの周りの灰色の領域)をクリックし、F4キーを押してプロパティパネルを表示します。プロパティの「レイアウト」カテゴリの下に、3つの異なるオプションが表示されます:InteractiveSize、Margins、PageSize。これらの各サイズ属性を展開して、幅と高さを表示できます。マージン属性は、左/右/上/下に展開できます。

基本的に、pdfエクスポートはPageSizeで機能します(ただし、私は通常、インタラクティブサイズとページサイズを同じにしようとしています)。 ReportViewerの組み込みのエクスポート関数を介してPDFファイルがレンダリングされる場合、PDF内の各「ページ」の幅と高さは、レポートのPageSize属性の幅と高さによって決定されます(独自のPDFレンダリング用のカスタムコード)。マージンについては、レポート用に予約されている印刷可能領域とページの端の間の空白と印刷不可のスペースの量を指定します。

言い換えると、レポートの本文の幅、レポートの左マージン、およびレポートの右マージンは、レポートのPageSizeの幅以下でなければなりません。

つまり、マージンが広すぎる場合、またはレポートの本文が広すぎる場合、またはPageSizeの幅が狭すぎる場合、表示される結果は、フィットさせるために複数のページに分割される必要があります。

例:レポートの本文の幅が7.75インチ、左マージンが0.5インチ、右マージンが0.5インチ、PageSizeで指定された幅が8.5インチの場合、レポートはデータの1ページごとに常に2ページを使用します。本体の7.75インチ幅とマージンの0.5インチ+ 0.5インチを合計すると、8.75インチになり、私のページで使用できる8.5インチよりも大きくなります。そのため、レポートの各ページの最初の7.5インチ(またはそう)本文は最初のページに表示され、残りは次のページに分割されます。スクロールバーを追加するだけでレポートがページサイズを超えて大きくなる可能性があるため、これはレポートビューアー内では行われませんが、PDFエクスポートでは気になります。サンプルレポートを1ページに収めるには、レポートの本文を7.5インチ以下に減らすか、左右の余白を合計で0.25インチ以上減らします(たとえば、それらを0.3 "に設定すると、合計で0.4"減少します)。または、PageSizeを8.75 "より大きい値に増やすことができます。注:Acrobat Readerはかなりスマートで、さまざまな用紙サイズを認識します。したがって、任意のPageSizesが機能しますが、通常、実際のページサイズを使用するのが最適です。このため、最後の例では、PageSizeをWidth = 11 "およびHeight = 8.5"に設定します。これは、横向きの実際のレターサイズです。Adobeは通常これを理解し、正しく印刷します。また、注意:一部のプリンター、特に古いプリンターでは、マージンが0.3インチ未満の場合に印刷に問題があります。ユーザーに親切にしたい場合は、これらの古いプリンターに十分なマージンを確保することをお勧めします;)

これがお役に立てば幸いです。

72
Paris

常に身幅を保つ:7.5以下

左、右マージンの幅が0.5未満最初にマージン幅を設定->メインメニューに移動レポート->レポートのプロパティ->レイアウト->左マージンと右マージンを変更

総ページ幅:8.5

ラマナ

6
Ramana

幅の監視に加えて、PDFで余分な空白ページを引き起こす可能性のある他の無関係なものを見つけました。

TablixにWordの折り返しがあるフィールドがある場合、これが原因となる可能性があります。データが長い場合は、フォントを小さくすることをお勧めします。フォントサイズプロパティを次のようにします。

  =iif(len(Fields!RepGroupName.Value) > 25, "6pt","8pt")

あなたがしなければならないかもしれない別のこと。そして、これは私が余分なページの明確な理由がないときに私を助けました。 [レポート]プロパティページで、次のように設定します:ConsumeContainerWhitespace = true

注意すべきもう一つのこと。レイアウトを変更している間、ボディサイズは知らないうちに大きくなる可能性があります。あなたはそれを再びノックダウンする必要があるかもしれません。

この問題は、解決されていないとエンドユーザーにとって非常に迷惑であり、解決する必要があるので非常に迷惑です。

3
user985595

他の誰かがこの問題に遭遇してここで終わる場合、それはおそらくマージンの問題です。余白が正しく設定されていない場合、文書を表示するとすべてが正常であるのに対して、印刷して印刷すると「余分な」ページが表示されることがよくあります。

2
Dugan