作成日: 2022/04/20 最終更新日: 2022/04/27
文書種別
使用方法
詳細
レポートの用紙サイズには以下2つの種類があります。
レポートの形式によって設定方法が異なりますので、以下をご確認ください。
(本文書のサンプルコードはGrapeCity.ActiveReports名前空間のインポートを前提としています。
こちらの文書をご参照ください。)
- レポート生成時の用紙サイズ
- 印刷時の用紙サイズ
レポートの形式によって設定方法が異なりますので、以下をご確認ください。
(本文書のサンプルコードはGrapeCity.ActiveReports名前空間のインポートを前提としています。
こちらの文書をご参照ください。)
- セクションレポートの場合
レポート生成時の用紙サイズは、デザイン時に[レポートの設定]ダイアログの[プリンタ設定]で設定できます。
ダイアログの表示方法は製品ヘルプの以下のトピックをご確認ください。
[レポートの設定]ダイアログ
コードで用紙サイズを変更する場合は、SectionReport.PageSettingsのプロパティを設定します。
※Runメソッドの実行前に設定してください。var rpt = new SectionReport1(); // 印刷に使用するプリンタ rpt.Document.Printer.PrinterName = "プリンタ名"; // 標準の用紙サイズを使用する場合 rpt.PageSettings.PaperKind = System.Drawing.Printing.PaperKind.A4; // プリンタドライバに登録されている「ユーザー定義サイズ」を使用する場合 rpt.PageSettings.PaperKind = System.Drawing.Printing.PaperKind.Custom; rpt.PageSettings.PaperName = "用紙名"; // ActiveReportsの「ユーザー定義のサイズ」機能を使用する場合 rpt.PageSettings.PaperKind = System.Drawing.Printing.PaperKind.Custom; rpt.PageSettings.PaperName = ""; rpt.PageSettings.PaperWidth = 10; // インチ単位 rpt.PageSettings.PaperHeight = 10; // インチ単位 // 用紙向き rpt.PageSettings.Orientation = GrapeCity.ActiveReports.Document.Section.PageOrientation.Portrait; rpt.Run(); rpt.Document.Print();
Dim rpt As New SectionReport1 ' 印刷に使用するプリンタ rpt.Document.Printer.PrinterName = "プリンタ名" ' 標準の用紙サイズを使用する場合 rpt.PageSettings.PaperKind = System.Drawing.Printing.PaperKind.A4 ' プリンタドライバに登録されている「ユーザー定義サイズ」を使用する場合 rpt.PageSettings.PaperKind = System.Drawing.Printing.PaperKind.Custom rpt.PageSettings.PaperName = "用紙名" ' ActiveReportsの「ユーザー定義のサイズ」機能を使用する場合 rpt.PageSettings.PaperKind = System.Drawing.Printing.PaperKind.Custom rpt.PageSettings.PaperName = "" rpt.PageSettings.PaperWidth = 10 ' インチ単位 rpt.PageSettings.PaperHeight = 10 ' インチ単位 ' 用紙向き rpt.PageSettings.Orientation = GrapeCity.ActiveReports.Document.Section.PageOrientation.Portrait rpt.Run() rpt.Document.Print()
■補足:「ユーザー定義のサイズ」について
セクションレポートの用紙サイズに「ユーザー定義のサイズ」を設定した場合、Runメソッドの実行時に"ARCustomForm"という名前の用紙サイズがプリンタドライバに登録されます。このため、アプリケーションの実行ユーザーに管理者権限(用紙サイズを登録できる権限)が必要になります。
用紙サイズを登録する必要がない場合は、仮想プリンタを使用してください。
印刷時の用紙サイズは、レポート生成時と同じ用紙サイズになります。
異なる用紙サイズに印刷する場合は、SectionReport.Document.Printerのプロパティを設定します。
※Runメソッドの実行後に設定してください。var rpt = new SectionReport1(); rpt.Run(); // 印刷に使用するプリンタ rpt.Document.Printer.PrinterName = "プリンタ名"; // 標準の用紙サイズを使用する場合 rpt.Document.Printer.PaperKind = System.Drawing.Printing.PaperKind.A4; // プリンタドライバに登録されている「ユーザー定義サイズ」を使用する場合 foreach (System.Drawing.Printing.PaperSize psize in rpt.Document.Printer.PaperSizes) { if (psize.PaperName == "用紙名") { rpt.Document.Printer.PaperSize = psize; break; } } // 用紙向き rpt.Document.Printer.Landscape = false; rpt.Document.Print();
Dim rpt As New SectionReport1 rpt.Run() ' 印刷に使用するプリンタ rpt.Document.Printer.PrinterName = "プリンタ名" ' 標準の用紙サイズを使用する場合 rpt.Document.Printer.PaperKind = System.Drawing.Printing.PaperKind.A4 ' プリンタドライバに登録されている「ユーザー定義サイズ」を使用する場合 For Each psize As System.Drawing.Printing.PaperSize In rpt.Document.Printer.PaperSizes If psize.PaperName = "用紙名" Then rpt.Document.Printer.PaperSize = psize Exit For End If Next ' 用紙向き rpt.Document.Printer.Landscape = False rpt.Document.Print()
- ページレポート/RDLレポートの場合
レポート生成時の用紙サイズは、デザイン時に[レポート]ダイアログの[外観]で設定します。
ダイアログの表示方法は製品ヘルプの以下のトピックをご確認ください。
[レポート]ダイアログ
※ページレポート/RDLレポートの場合、レポート生成時の用紙サイズをコードで変更することはできません。
■補足:「ユーザー定義のサイズ」について
ページレポート/RDLレポートの用紙サイズに「ユーザー定義のサイズ」を設定した場合、プリンタドライバに新しい用紙サイズは登録されません。
独自の用紙サイズに印刷したい場合は、あらかじめプリンタドライバに用紙サイズを登録してください。
印刷時の用紙サイズは、レポート生成時の用紙サイズと「幅×高さ」が一致する用紙サイズになります。
異なる用紙サイズに印刷する場合は、PrinterSettingsオブジェクトをPrintメソッドの引数に設定します。
var rpt = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo("PageReport1.rdlx")); var doc = new GrapeCity.ActiveReports.Document.PageDocument(rpt); // 印刷設定用オブジェクト var settings = new GrapeCity.ActiveReports.PrinterSettings(); // 印刷に使用するプリンタ settings.Printer.PrinterName = "プリンタ名"; // 標準の用紙サイズを使用する場合 settings.Printer.PaperKind = System.Drawing.Printing.PaperKind.A4; // プリンタドライバに登録されている「ユーザー定義サイズ」を使用する場合 foreach (System.Drawing.Printing.PaperSize psize in settings.Printer.PaperSizes) { if (psize.PaperName == "用紙名") { settings.Printer.PaperSize = psize; break; } } // 用紙向き settings.Printer.Landscape = false; doc.Print(settings);
Dim rpt As New GrapeCity.ActiveReports.PageReport(New IO.FileInfo("PageReport1.rdlx")) Dim doc As New GrapeCity.ActiveReports.Document.PageDocument(rpt) ' 印刷設定用オブジェクト Dim settings As New GrapeCity.ActiveReports.PrinterSettings() ' 印刷に使用するプリンタ settings.Printer.PrinterName = "プリンタ名" ' 標準の用紙サイズを使用する場合 settings.Printer.PaperKind = System.Drawing.Printing.PaperKind.A4 ' プリンタドライバに登録されている「ユーザー定義サイズ」を使用する場合 For Each psize As System.Drawing.Printing.PaperSize In settings.Printer.PaperSizes If psize.PaperName = "用紙名" Then settings.Printer.PaperSize = psize Exit For End If Next ' 用紙向き settings.Printer.Landscape = False doc.Print(settings)
PageDocument.Printerプロパティでも用紙サイズは設定可能です。
ただし、このプロパティは.NETをターゲットフレームワークとしている場合は使用できません。
.NET Frameworkでも将来的に廃止予定であるため、現在は非推奨の方法となります。