特定のプリンタについて、印刷時のカラー/モノクロ指定が有効にならない

文書番号 : 33463     文書種別 : 制限事項     登録日 : 2012/08/22     最終更新日 : 2012/08/23
文書を印刷する
対象製品
ActiveReports 2.0J Professional
詳細
ActiveReports では、印刷時のカラー/モノクロ指定をコード上であらかじめ設定する機能として Printer.ColorModeプロパティを用意しております。

◆サンプルコード
Dim rpt As New ActiveReport1

' 印刷時のカラー/モノクロ指定を設定します。
rpt.Printer.ColorMode = vbPRCMMonochrome
'rpt.Printer.ColorMode = vbPRCMColor

' レポートを生成します。
rpt.Run False

' 印刷します。
rpt.PrintReport True


しかしながら、過去の事例として、印刷時に ColorModeプロパティの設定が反映されない機種が存在することが確認されております。

(参考)これまでに弊社にて本事象を確認した機種
  • カラー/モノクロ設定が反映されるプリンタ
    • Canon LBP-2810
    • EPSON PM-4000PX
    • OKI C8600dn
  • カラー/モノクロ設定が反映されないプリンタ
    • Canon PIXUS 6100i
    • FUJI XEROX DocuPrint C2425/C2426
    • FUJI XEROX FX ApeosPort-IV C5570
    • FUJI XEROX FX DocuCentre-Ⅱ C5400
    • HP Designjet 111 Roll
    • Kyocera FS-C5400DN

上記のように使用するプリンタによって動作結果が異なりますので、本現象はプリンタまたはプリンタドライバ側の動作に依存して発生している現象となります。

また、本事象は、ActiveReports を使用せずに、Visual Basic標準の印刷機能を使用して印刷しても、同様に発生します。

◆サンプルコード
Private Sub Command1_Click()

  ' 印刷時のカラー/モノクロ指定を設定します。
  Printer.ColorMode = vbPRCMMonochrome
  'Printer.ColorMode = vbPRCMColor

  ' 印刷します。
  Printer.ForeColor = vbRed
  Printer.Print "白黒印刷"
  Printer.EndDoc

End Sub


ActiveReportsの印刷処理は、ActiveReportsが直接プリンタを制御している訳ではなく、インタフェースであるWindows API関数を呼び出しているのみです。その先のデバイスは意識しておりません。Windows API関数に対して出力するデータも、プリンタやプリンタドライバごとに内容が変わるという訳ではなく、同一内容のデータを出力しています。

最終的な印刷結果や動作は、使用するプリンタやプリンタドライバに依存しますので、それらの条件によって印刷結果や動作に差異が生じる場合がございます。

本件については、Visual Basic 標準の印刷機能でも発生する問題であり、ActiveReports 側で対処することが困難であるため、製品の制限事項となります。