【ActiveReport】Printer does not support A5 papersizeが出た時の対応方法

パソコンプログラミング
この記事は約3分で読めます。
スポンサーリンク

システムでActiveReportを使用した帳票を使っているのですが、稀に原因不明でPrinter does not support A5 papersizeが出ることがあり、エラーとなってしまいます。印刷時には、端末に定義しているプリンタ名を指定して印刷をしており、A5に対応しているのになぜ?

今回はこのエラーについて調べてみました。

エラー内容

[発生例外]GrapeCity.ActiveReports.ReportException, [メッセージ]GrapeCity.ActiveReports.ReportException: Printer does not support A5 papersize. Please use PaperKind.Custom in your PageSettings or specify a papersize supported by the current printer
場所 GrapeCity.ActiveReports.SectionReport.ApplyPrinterSettings() 場所 GrapeCity.ActiveReports.SectionReport.ProcessInit(Boolean bDelayedInit) 
場所 GrapeCity.ActiveReports.SectionReport.Run(Boolean syncDocument) 
場所 GrapeCity.ActiveReports.SectionReport.Run() 

Grapecityに以下のナレッジベースを発見

セクションレポートの実行時、プリンタが用紙サイズをサポートしていないというエラーが発生します - ActiveReports for .NET 7.0J - ナレッジベースの詳細 | Developer Solutions〈開発支援ツール〉 - メシウス株式会社
メシウスのActiveReports for .NET 7.0Jについての技術情報です。使用方法:セクションレポートの実行時、プリンタが用紙サイズをサポートしていないというエラーが発生します

セクションレポートの場合、レポート生成時や、デザイン画面上で「レポートの設定」ダイアログを表示したときに、その環境のプリンタドライバから用紙サイズなどの情報を取得します。その際に参照するプリンタは、(特に指定しない限り)その環境上で「通常使うプリンタ(デフォルトプリンタ)」に指定されているプリンタです。

確かに印刷時はプリンタ名を指定していますが既定のプリンタのことは、意識していませんでした。ActiveReports.SectionReport処理は、レポート生成時にデザイン時に設定した[レポートの設定]で設定された用紙サイズが印刷できるかを確認しているみたいです。今回エラーとなったレポートの設定はA5にしていたいのでWindowsで既定のプリンタにしていたプリンタ定義がA5に対応しておらず、エラーになったということだと思います。

とりあえず、既定のプリンタをA5サイズに対応した本来印刷するプリンタに変更したところエラーにならず正常終了したのでこれが原因だと思います。

Windowsで通常使うプリンタを管理する設定にも注意

Windowsの設定画面のプリンタとスキャナーの設定画面で[Windowsで通常使うプリンタを管理する]にチェックが入っていると、問答無用でこの端末で最後に印刷したプリンタが通常使うプリンタになってしまうので、プリンタの印刷プログラムなどを保守している場合はチェックは外しておいた方がいいです。

GrapeCityのナレッジデータベースは、結構詳しくエラー内容と対処法を記載してくれているので
エラーが発生したらまず、ナレッジデータベースを見ることをお勧めします。

コメント

タイトルとURLをコピーしました