none
CrystalReportsでプリンタによらず「1枚に収める」方法 RRS feed

  • 質問

  • お世話になります。

     

    現在、CrystalReportsを使って帳票を作成しています。

    帳票は、サーバ側で生成するのではなく、クライアント側で生成する方式を採っています。

     

    その際、同じ内容の帳票を印刷しても、使用するプリンタによって1枚に収まったり、2枚にまたがったりとばらつきが出てしまいます。どのようなPCでも1毎に収めて印刷するようなことはできないでしょうか。印刷だけでなく、PDFファイルに保存する際にもプリンタの設定が使われているようで、やはり2ページにまたがったりしてしまいます。

     

    すべてのPCに同じプリンタドライバを入れてもらい、開発もそのプリンタドライバを前提にレイアウトを調整するなどの必要があるのでしょうか。レポートの定義などで、「1ページに収める」などといった定義はないでしょうか(プリンタの印刷可能範囲により、自動的に帳票の拡縮をしてくれるなど)。もしくは、プリンタの設定によらず、コードで微調整することなどはできないでしょうか。

     

    情報をお持ちの方がいらっしゃいましたら是非おしえていただけませんでしょうか。

     

    何卒よろしくお願い致します。

     

    2008年11月14日 7:27

回答

  • 基本的に無理です。
    スケーリングで対応できるかもしれませんが、文字が読めなかったり、線が重なったりと色々と面倒そうな気配がします。
     
     
    > すべてのPCに同じプリンタドライバを入れてもらい、開発もそのプリンタドライバを前提にレイアウトを
    > 調整するなどの必要があるのでしょうか。
     
    こういう手法であれば、概ね大丈夫だと思いますよ。ただし、完全に保障されるわけではないでしょう。
    複数のハードウェアに対応するドライバで、異なるハードウェアに対して違う結果になる可能性や、ミニポートドライバ(最近はユーザモードモジュール?)からダウンロードされるフォントの有無とか、プリンタドライバ側に設定される印刷関連のプロパティの設定などなども影響しうることです。
     
    > レポートの定義などで、「1ページに収める」などといった定義はないでしょうか
     
    特定の要素を同じページに収めるような設定は Crystal Reports に存在します。が、それは1枚の用紙に入りきる予定の内容を1枚の用紙に収めるために使われるのではなく、1枚の用紙に入りきらないかもしれない内容を2枚の用紙の分割するためにあります。
     
    2008年11月17日 14:57

すべての返信

  • 基本的に無理です。
    スケーリングで対応できるかもしれませんが、文字が読めなかったり、線が重なったりと色々と面倒そうな気配がします。
     
     
    > すべてのPCに同じプリンタドライバを入れてもらい、開発もそのプリンタドライバを前提にレイアウトを
    > 調整するなどの必要があるのでしょうか。
     
    こういう手法であれば、概ね大丈夫だと思いますよ。ただし、完全に保障されるわけではないでしょう。
    複数のハードウェアに対応するドライバで、異なるハードウェアに対して違う結果になる可能性や、ミニポートドライバ(最近はユーザモードモジュール?)からダウンロードされるフォントの有無とか、プリンタドライバ側に設定される印刷関連のプロパティの設定などなども影響しうることです。
     
    > レポートの定義などで、「1ページに収める」などといった定義はないでしょうか
     
    特定の要素を同じページに収めるような設定は Crystal Reports に存在します。が、それは1枚の用紙に入りきる予定の内容を1枚の用紙に収めるために使われるのではなく、1枚の用紙に入りきらないかもしれない内容を2枚の用紙の分割するためにあります。
     
    2008年11月17日 14:57
  • K.Takaoka さんありがとうございます。

     

    いただいた情報を元に、がんばってみます。

    今後とも何卒よろしくお願い致します。

    2008年11月18日 3:08