[FlexReport for WinForms] Printメソッドを使用してレポートの用紙サイズで印刷する方法は?

文書番号 : 82459     文書種別 : HowTo
登録日 : 2017/12/05     最終更新日 : 2017/12/05

対象製品

Studio for WinForms

詳細

C1FlexReportクラスのPrintメソッドを使用して印刷する場合、用紙サイズを明示的に設定しないと、「通常使うプリンタ(デフォルトプリンタ)」のデフォルト設定で印刷が実行されます。このため、レポートに設定された用紙サイズとは異なるサイズで印刷される場合があります。

実行環境に依存せずレポートに設定された用紙サイズで印刷したい場合は、Printメソッドの引数で用紙サイズを設定します。

◎サンプルコード(VB)
Dim ps As New System.Drawing.Printing.PrinterSettings
ps.PrinterName = "プリンタ名"

' プリンタがサポートしている用紙サイズを取得
For Each psize As System.Drawing.Printing.PaperSize In ps.PaperSizes
  ' 用紙タイプが合致したサイズを設定する
  If psize.Kind = C1FlexReport1.Layout.PaperSize Then
    ps.DefaultPageSettings.PaperSize = psize
    Exit For
  End If
Next

' 用紙向き
If C1FlexReport1.Layout.Orientation = C1.Win.FlexReport.OrientationEnum.Landscape Then
  ps.DefaultPageSettings.Landscape = True
Else
  ps.DefaultPageSettings.Landscape = False
End If

C1FlexReport1.Print(ps)

◎サンプルコード(C#)
var ps = new System.Drawing.Printing.PrinterSettings();
ps.PrinterName = "プリンタ名";

// プリンタがサポートしている用紙サイズを取得
foreach (System.Drawing.Printing.PaperSize psize in ps.PaperSizes)
{
  // 用紙タイプが合致したサイズを設定する
  if (psize.Kind == c1FlexReport1.Layout.PaperSize)
  {
    ps.DefaultPageSettings.PaperSize = psize;
    break;
  }
}

// 用紙向き
if (c1FlexReport1.Layout.Orientation == C1.Win.FlexReport.OrientationEnum.Landscape)
{
  ps.DefaultPageSettings.Landscape = true;
}
else
{
  ps.DefaultPageSettings.Landscape = false;
}

c1FlexReport1.Print(ps);