31

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

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

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

レポートのサイズを制御できるように、何かできることはありますか?

4

4 に答える 4

79

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

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

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

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

つまり、レポートの本文の幅に、レポートの左余白を加えた値と、レポートの右余白を加えた値は、レポートのページサイズの幅以下でなければなりません。

したがって...余白が広すぎる場合、またはレポートの本文が広すぎる場合、または 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.4 インチ減らすには、それらを 0.3 インチに設定します)。または、PageSize を 8.75 インチよりも大きくすることができます。注: Acrobat Reader は非常にスマートで、さまざまな用紙サイズを認識します。したがって、任意の PageSize も機能しますが、通常は実際のページ サイズを使用するのが最適です。そのため、最後の例では、PageSize を幅 = 11 インチ、高さ = 8.5 インチに設定します。これは、横向きの実際のレターサイズです! 通常、アドビはこれを理解し、適切に印刷します。また、注意: 一部のプリンター、特に古いプリンターでは、0.3 インチ未満の余白で印刷するのに問題があります。ユーザーに親切にしたい場合は、これらの古いプリンターに十分な余白を維持する必要があります;) 合計で 0.4 インチを 3 インチに縮小するか、PageSize を 8.75 インチよりも大きくすることができます。実際のページ サイズを使用するには. そのため、最後の例では、PageSize を幅 = 11"、高さ = 8.5" に設定します。これは、横向きの実際のレター サイズです! Adob​​e は通常、これを理解して適切に印刷します。また、注意: 一部のプリンター、特に古いプリンターでは、余白が 0.3 インチ未満の場合、印刷に問題があります。ユーザーに優しくしたい場合は、古いプリンターに十分な余白を確保する必要があります;) 合計で 0.4 インチを 3 インチに縮小するか、PageSize を 8.75 インチよりも大きくすることができます。実際のページ サイズを使用するには. そのため、最後の例では、PageSize を幅 = 11"、高さ = 8.5" に設定します。これは、横向きの実際のレター サイズです! Adob​​e は通常、これを理解して適切に印刷します。また、注意: 一部のプリンター、特に古いプリンターでは、余白が 0.3 インチ未満の場合、印刷に問題があります。ユーザーに優しくしたい場合は、古いプリンターに十分な余白を確保する必要があります;) Acrobat Reader は非常にスマートで、さまざまな用紙サイズを認識します。したがって、任意の PageSize も機能しますが、通常は実際のページ サイズを使用するのが最適です。そのため、最後の例では、PageSize を幅 = 11 インチ、高さ = 8.5 インチに設定します。これは、横向きの実際のレターサイズです! 通常、アドビはこれを理解し、適切に印刷します。また、注意: 一部のプリンター、特に古いプリンターでは、0.3 インチ未満の余白で印刷するのに問題があります。ユーザーに親切にしたい場合は、これらの古いプリンターに十分な余白を維持する必要があります;) Acrobat Reader は非常にスマートで、さまざまな用紙サイズを認識します。したがって、任意の PageSize も機能しますが、通常は実際のページ サイズを使用するのが最適です。そのため、最後の例では、PageSize を幅 = 11 インチ、高さ = 8.5 インチに設定します。これは、横向きの実際のレターサイズです! 通常、アドビはこれを理解し、適切に印刷します。また、注意: 一部のプリンター、特に古いプリンターでは、0.3 インチ未満の余白で印刷するのに問題があります。ユーザーに親切にしたい場合は、これらの古いプリンターに十分な余白を維持する必要があります;) これは、横向きの実際のレター サイズです。通常、アドビはこれを理解し、適切に印刷します。また、注意: 一部のプリンター、特に古いプリンターでは、0.3 インチ未満の余白で印刷するのに問題があります。ユーザーに親切にしたい場合は、これらの古いプリンターに十分な余白を維持する必要があります;) これは、横向きの実際のレター サイズです。通常、アドビはこれを理解し、適切に印刷します。また、注意: 一部のプリンター、特に古いプリンターでは、0.3 インチ未満の余白で印刷するのに問題があります。ユーザーに親切にしたい場合は、これらの古いプリンターに十分な余白を維持する必要があります;)

これが役立つことを願っています。

于 2009-06-25T20:02:20.897 に答える
7

ボディ幅を常に維持:7.5以下

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

全ページ幅:8.5

ラマナ

于 2009-08-20T09:14:01.860 に答える
5

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

Tablix にワード ラップのあるフィールドがある場合、これが原因である可能性があります。長いデータがある場合は、フォントを小さくしたい場合があります。フォント サイズ プロパティを次のようにします。

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

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

注目すべきさらに別のこと。レイアウトを変えていくと、知らないうちにボディサイズが大きくなっていきます。もう一度倒さなければならないかもしれません。

この問題が解決されない場合、エンド ユーザーにとって非常に迷惑であり、私たちが解決しなければならないことも迷惑です。

于 2011-10-13T05:44:59.063 に答える
2

他の誰かがこの問題に遭遇してここで終わった場合、それはおそらくあなたのマージンの問題です。余白が正しく設定されていない場合、印刷しようとすると「余分な」ページが表示されることがよくありますが、ドキュメントを表示するとすべて問題ありません。

于 2009-03-19T20:05:10.917 に答える