印刷関連:印刷マージンの設定VB2008でMarginsを使い印刷余白を設定する使用例サンプルです。印刷関連へ印刷余白を設定するには、PageSetupDialogコンポーネントのMargins コンストラクタを使用します。 ■構文 Margins(left, right, top, bottom) ・引数 left : Integer型 左マージン right : Integer型 右マージン top : Integer型 上マージン bottom : Integer型 下マージン ※.実際にテストした結果、近い長さになるのですが、なぜか指定した長さになりませんでした。 結果例: 10mm に設定すると 13mm 30mm に設定すると 27mm 60mm に設定すると 53mm 80mm に設定すると 72mm 原因は今後調べていきたいと思います。 ■手順 1) フォームデザインで、コマンドボタンとPrintDocumentとPrintPreviewDialogとPageSetupDialogコンポーネントを配置します。 2)コマンドボタンクリックイベントで下記の内容を実行します。 1.ページセットアップコンポーネントに印刷コンポーネントを指定します 2.マージンを設定。 3.印刷プレビューのShowDialog メソッド を実行します。 3)PrintPageイベントで、マージン枠とGraphicsクラスのDrawStringメソッドに印刷文字等を設定します。 ■実行画面 左余白・右余白・上余白・下余白 を入力し「印刷」ボタンをクリックします。 上の設定での印刷プレビュー画面 赤枠が印刷マージンの枠です。 ■実行画面 余白の設定を変更し印刷します。 上の設定での印刷プレビュー画面 赤枠が印刷マージンの枠です。 ■実行コード Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim tleft As Integer Dim tright As Integer Dim ttop As Integer Dim tbottom As Integer 'mmを1/100インチに変換 tleft = CInt(Val(TextBox1.Text) * 3.937) tright = CInt(Val(TextBox2.Text) * 3.937) ttop = CInt(Val(TextBox3.Text) * 3.937) tbottom = CInt(Val(TextBox4.Text) * 3.937) PageSetupDialog1.Document = Me.PrintDocument1 '余白を指定する PageSetupDialog1.PageSettings.Margins = _ New System.Drawing.Printing.Margins(tleft, tright, ttop, tbottom) Me.PrintPreviewDialog1.Document = Me.PrintDocument1 '印刷プレビューダイアログを表示 Me.PrintPreviewDialog1.ShowDialog() 'End If End Sub Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage e.Graphics.DrawRectangle(New Pen(Color.Red, 2), e.MarginBounds.Left, e.MarginBounds.Top, e.MarginBounds.Width, e.MarginBounds.Height) 'テキスト印刷 e.Graphics.DrawString("Visual Basic 2008 Express Edition実践入門", New Font("MS P 明朝", 20), _ Brushes.Black, e.MarginBounds.Left, e.MarginBounds.Top) End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load TextBox1.Text = "25" TextBox2.Text = "25" TextBox3.Text = "25" TextBox4.Text = "25" End Sub End Class Visual Basic 2008 Express Edition実践入門 |