目次

「印刷」ダイアログボックスを表示する

印刷ダイアログを表示するコードを紹介します。

UI

下図のUIを準備します。PrinterDialog, Button, TextBoxを配置します。TextBoxはMultilineプロパティをTrueに設定します。PrinterDialogはフォームに配置されるとフォームデザイナの下部にエリアが追加されて表示されます(下図参照)。


PrinterDialogは[ツールパレット]の[印刷]カテゴリの中にあります。


コード

以下のコードを記述します。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Print
{
  public partial class FormMain : Form
  {
    public FormMain()
    {
      InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
      DialogResult dr = printDialog1.ShowDialog();
if (dr == System.Windows.Forms.DialogResult.OK) {
  textBox1.Text
    += string.Format("プリンタ名:{0:s}\r\n", printDialog1.PrinterSettings.PrinterName);
        
  textBox1.Text
    += string.Format("印刷開始ページ:{0:d}\r\n", printDialog1.PrinterSettings.FromPage);
  textBox1.Text
    += string.Format("印刷終了ページ:{0:d}\r\n", printDialog1.PrinterSettings.ToPage);

  textBox1.Text
    += string.Format("両面印刷:{0:b}\r\n", printDialog1.PrinterSettings.CanDuplex);
  textBox1.Text
    += string.Format("部単位の印刷:{0:b}\r\n", printDialog1.PrinterSettings.Collate);
  textBox1.Text
    += string.Format("部数:{0:d}\r\n", printDialog1.PrinterSettings.Copies);
  textBox1.Text
    += string.Format("デフォルトプリンタ:{0:b}\r\n", printDialog1.PrinterSettings.IsDefaultPrinter);
  textBox1.Text
    += string.Format("プロッタである:{0:b}\r\n", printDialog1.PrinterSettings.IsPlotter);
  textBox1.Text
    += string.Format("プリンタが有効か:{0:b}\r\n", printDialog1.PrinterSettings.IsValid);
  textBox1.Text
    += string.Format("用紙の角度:{0:d}\r\n", printDialog1.PrinterSettings.LandscapeAngle);
  textBox1.Text
    += string.Format("印刷可能な最大部数:{0:d}\r\n", printDialog1.PrinterSettings.MaximumCopies);
  textBox1.Text
    += string.Format("印刷可能な最大ページ:{0:d}\r\n", printDialog1.PrinterSettings.MaximumPage);
  textBox1.Text
    += string.Format("印刷可能な最小ページ:{0:d}\r\n", printDialog1.PrinterSettings.MinimumPage);
  textBox1.Text
    += string.Format("ファイルへ出力:{0:b}\r\n", printDialog1.PrinterSettings.PrintToFile);
  textBox1.Text
    += string.Format("カラー印刷:{0:b}\r\n", printDialog1.PrinterSettings.SupportsColor);
}
    }
  }
}

解説

DialogResult dr = printDialog1.ShowDialog();
にて、印刷ダイアログを表示します。印刷ダイアログの操作結果がDialogResult型の戻り値で返されます。

if (dr == System.Windows.Forms.DialogResult.OK) {
  ...
}
印刷ダイアログで[印刷]ボタンが押された場合は、テキストボックスに印刷ダイアログで設定した項目とプリンタのプロパティを表示しします。

実行結果

プロジェクトを実行します。下図のウィンドウが表示されます。


button1をクリックします。[印刷]ダイアログボックスが表示されます(下図参照)。ダイアログボックスを操作してプリンタを選択します。部数なども変更できます。設定ができたら[印刷]ボタンを押します。


印刷ダイアログで設定した情報と選択したプリンタの情報がテキストボックスに表示されます。


こちらは"Adobe PDF"の場合の例です。



著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2012-05-28
iPentec all rights reserverd.