Windowsフォームアプリケーションから印刷する時の印刷設定をコード上であらかじめ設定する方法は?

文書番号 : 34026     文書種別 : 使用方法     登録日 : 2013/10/17     最終更新日 : 2014/03/24
文書を印刷する
対象製品
ActiveReports for .NET 7.0J
詳細
Windowsフォームアプリケーションにおいて、Viewerコントロールの[印刷]ボタンやPrintメソッドを使用して印刷する時の印刷設定をコード上であらかじめ設定したい場合は、PageSettingsクラスやPrinterクラスのプロパティを使用します。

なお、具体的な設定方法は、レポートの形式によって異なります。
  1. セクションレポートの場合
  2. ページレポートの場合


セクションレポートの場合


◆サンプルコード(VB.NET)
Dim rpt As New SectionReport1

' 出力先プリンタを指定します。
rpt.Document.Printer.PrinterName = "(PrinterName)"

' 印刷部数を指定します。
rpt.Document.Printer.PrinterSettings.Copies = 5

' 両面印刷に設定します。
rpt.PageSettings.Duplex = Printing.Duplex.Vertical
rpt.Document.Printer.PrinterSettings.Duplex = Printing.Duplex.Vertical

' カラー印刷に設定します。
rpt.Document.Printer.DefaultPageSettings.Color = True
rpt.Document.Printer.PrinterSettings.DefaultPageSettings.Color = True

' 給紙トレイを設定します。
For Each ps As System.Drawing.Printing.PaperSource In rpt.Document.Printer.PrinterSettings.PaperSources
  '「手差し」に設定します。
  If ps.Kind = Printing.PaperSourceKind.Manual Then
    rpt.PageSettings.DefaultPaperSource = False
    rpt.PageSettings.PaperSource = ps.Kind
    rpt.Document.Printer.DefaultPageSettings.PaperSource = ps
    rpt.Document.Printer.PrinterSettings.DefaultPageSettings.PaperSource = ps
    Exit For
  End If
Next

' レポートをプレビュー表示します。
Me.Viewer1.LoadDocument(rpt)

◆サンプルコード(C#)
SectionReport1 rpt = new SectionReport1();

// 出力先プリンタを指定します。
rpt.Document.Printer.PrinterName = "(PrinterName)";

// 印刷部数を指定します。
rpt.Document.Printer.PrinterSettings.Copies = 5;

// 両面印刷に設定します。
rpt.PageSettings.Duplex = System.Drawing.Printing.Duplex.Vertical;
rpt.Document.Printer.PrinterSettings.Duplex = System.Drawing.Printing.Duplex.Vertical;

// カラー印刷に設定します。
rpt.Document.Printer.DefaultPageSettings.Color = true;
rpt.Document.Printer.PrinterSettings.DefaultPageSettings.Color = true;

// 給紙トレイを設定します。
foreach (System.Drawing.Printing.PaperSource ps in rpt.Document.Printer.PrinterSettings.PaperSources)
{
  //「手差し」に設定します。
  if (ps.Kind == System.Drawing.Printing.PaperSourceKind.Manual)
  {
    rpt.PageSettings.DefaultPaperSource = false;
    rpt.PageSettings.PaperSource = ps.Kind;
    rpt.Document.Printer.DefaultPageSettings.PaperSource = ps;
    rpt.Document.Printer.PrinterSettings.DefaultPageSettings.PaperSource = ps;
    break;
  }
}

// レポートをプレビュー表示します。
this.viewer1.LoadDocument(rpt);



ページレポートの場合


◆サンプルコード(VB.NET)
' ページレポートファイル(.rdlx)をロードします。
Dim file_name As String = "PageReport1.rdlx"
Dim rpt As New GrapeCity.ActiveReports.PageReport(New System.IO.FileInfo(file_name))
Dim pageDocument As New GrapeCity.ActiveReports.Document.PageDocument(rpt)

' 出力先プリンタを指定します。
pageDocument.Printer.PrinterName = "(PrinterName)"

' 印刷部数を指定します。
pageDocument.Printer.PrinterSettings.Copies = 5

' 両面印刷に設定します。
pageDocument.Printer.PrinterSettings.Duplex = System.Drawing.Printing.Duplex.Vertical

' カラー印刷に設定します。
pageDocument.Printer.DefaultPageSettings.Color = True
pageDocument.Printer.PrinterSettings.DefaultPageSettings.Color = True

' 給紙トレイを設定します。
For Each ps As System.Drawing.Printing.PaperSource In pageDocument.Printer.PrinterSettings.PaperSources
  '「手差し」に設定します。
  If ps.Kind = Printing.PaperSourceKind.Manual Then
    pageDocument.Printer.DefaultPageSettings.PaperSource = ps
    pageDocument.Printer.PrinterSettings.DefaultPageSettings.PaperSource = ps
    Exit For
  End If
Next

' レポートをプレビュー表示します。
Me.Viewer1.LoadDocument(pageDocument)

◆サンプルコード(C#)
// ページレポートファイル(.rdlx)をロードします。
string file_name = "PageReport1.rdlx";
GrapeCity.ActiveReports.PageReport rpt
  = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(file_name));
GrapeCity.ActiveReports.Document.PageDocument pageDocument = new GrapeCity.ActiveReports.Document.PageDocument(rpt);

// 出力先プリンタを指定します。
pageDocument.Printer.PrinterName = "(PrinterName)";

// 印刷部数を指定します。
pageDocument.Printer.PrinterSettings.Copies = 5;

// 両面印刷に設定します。
pageDocument.Printer.PrinterSettings.Duplex = System.Drawing.Printing.Duplex.Vertical;

// カラー印刷に設定します。
pageDocument.Printer.DefaultPageSettings.Color = true;
pageDocument.Printer.PrinterSettings.DefaultPageSettings.Color = true;

// 給紙トレイを設定します。
foreach (System.Drawing.Printing.PaperSource ps in pageDocument.Printer.PrinterSettings.PaperSources)
{
  //「手差し」に設定します。
  if (ps.Kind == System.Drawing.Printing.PaperSourceKind.Manual)
  {
    pageDocument.Printer.DefaultPageSettings.PaperSource = ps;
    pageDocument.Printer.PrinterSettings.DefaultPageSettings.PaperSource = ps;
    break;
  }
}

// レポートをプレビュー表示します。
this.viewer1.LoadDocument(pageDocument);
関連情報
キーワード
HowTo 印刷・プレビュー