下図のようなページ設定ダイアログを表示してから、印刷する方法を紹介します。
ページ設定ダイアログを表示するには、PageSetupDialogクラスを用います。この時、PageSetupDialog.Documentプロパティに印刷で使用するPrintDocumentオブジェクトを指定します。
ここではその例として、「印刷する」で紹介したサンプルに手を加え、ページ設定ダイアログを表示してから印刷するようにしています。
'Imports System.Windows.Forms 'Imports System.Drawing 'Button1のClickイベントハンドラ Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click 'PrintDocumentオブジェクトの作成 Dim pd As New System.Drawing.Printing.PrintDocument 'PrintPageイベントハンドラの追加 AddHandler pd.PrintPage, AddressOf pd_PrintPage 'PageSetupDialogクラスの作成 Dim psd As New PageSetupDialog 'PrintDocumentを指定 psd.Document = pd 'ページ設定ダイアログを表示する If psd.ShowDialog() = DialogResult.OK Then 'OKがクリックされた時は印刷する pd.Print() End If End Sub Private Sub pd_PrintPage(ByVal sender As Object, _ ByVal e As System.Drawing.Printing.PrintPageEventArgs) '画像を読み込む Dim img As Image = Image.FromFile("test.bmp") '画像を描画する e.Graphics.DrawImage(img, e.MarginBounds) '次のページがないことを通知する e.HasMorePages = False '後始末をする img.Dispose() End Sub
//using System.Windows.Forms; //using System.Drawing; //Button1のClickイベントハンドラ private void Button1_Click(object sender, System.EventArgs e) { //PrintDocumentオブジェクトの作成 System.Drawing.Printing.PrintDocument pd = new System.Drawing.Printing.PrintDocument(); //PrintPageイベントハンドラの追加 pd.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(pd_PrintPage); //PageSetupDialogクラスの作成 PageSetupDialog psd = new PageSetupDialog(); //PrintDocumentを指定 psd.Document = pd; //ページ設定ダイアログを表示する if (psd.ShowDialog() == DialogResult.OK) { //OKがクリックされた時は印刷する pd.Print(); } } private void pd_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { //画像を読み込む Image img = Image.FromFile("test.bmp"); //画像を描画する e.Graphics.DrawImage(img, e.MarginBounds); //次のページがないことを通知する e.HasMorePages = false; //後始末をする img.Dispose(); }
ここではPageSetupDialogオブジェクトを自分で作成しましたが、Visual StudioのフォームデザイナでPageSetupDialogコンポーネントをフォームに追加して利用する方法もあります。この方法についてはヘルプの「PageSetupDialog コンポーネント (Windows フォーム)」をご覧ください。
注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。