接続されたプリンタドライバの影響を受けることなく、設定されたプリンタのプロパティに従ってレポートを作成するには?

文書番号 : 11606     文書種別 : 使用方法     最終更新日 : 2003/05/21
文書を印刷する
対象製品
ActiveReports 2.0J Professional
詳細
仮想プリンタを使用してレポートの作成を行うことで、特定のプリンタドライバに依存しないレポートを作成することができます。この方法は、不特定多数のプリンタで印刷される可能性がある ASP アプリケーションの場合に有効です。
仮想プリンタとは、DeviceName プロパティの値を空文字列( "" )に設定することで、接続されたプリンタドライバの影響を受けることなく設定された Printer オブジェクトのプロパティに従ってレポートを生成するものです。ただし、レポートを生成することはできても、プリンタ側でサポートされていない用紙に印刷することはできませんので、予めご注意ください。

設定は ActiveReport_Initialize イベントではなく、ReportStart イベントで行うようにしてください。Initialize イベントは ActiveReports で用意しているイベントではなく、Window オブジェクトのイベントになります。 ActiveReport_Initialize イベントはレポートオブジェクトのインスタンス生成時にしか発生しない為、レポート生成が再実行される場合等に対応することができません。

サンプルコード
Dim savePrinter As String

Private Sub ActiveReport_ReportStart()
 savePrinter = Me.Printer.DeviceName
 Me.Printer.DeviceName = "" '仮想プリンタの利用
  
 With Me.PageSettings
  .PaperSize = vbPRPSB4
  .Orientation = ddOLandscape

  .LeftMargin = 720
  .TopMargin = 720
  .RightMargin = 720
  .BottomMargin = 720
  Me.PrintWidth = Me.Printer.PaperWidth - _
               (.LeftMargin + .RightMargin)
 End With
End Sub

Private Sub ActiveReport_ReportEnd()
 '設定を元に戻す
 Me.Printer.DeviceName = savePrinter
End Sub
関連情報
キーワード
HowTo Web

この文書は、以前は次のFAQ IDで公開されていました : 3453