ページ設定ダイアログボックスを表示する (3個) (SNo.056) 1.ページ設定ダイアログの表示 2.ページ設定ダイアログの設定結果を印刷プレビューに反映 3.ページ設定ダイアログの設定結果を印刷設定に反映 |
|
使用コントロール | Button1 Button2 PageSetupDialog1 PrintPreviewDialog1 PrintDocument1 |
その他条件 | WindowsXP(Vista) Visual Basic 2005(VB2008) |
1.ページ設定ダイアログの表示
Private printerPageSetting As New System.Drawing.Printing.PageSettings
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click ''ページ設定ダイアログの設定及び表示 '現在のページ設定ダイアログの設定を指定 With printerPageSetting.Margins .Left = CInt(.Left * 2.54 / 10) * 10 .Top = CInt(.Top * 2.54 / 10) * 10 .Right = CInt(.Right * 2.54 / 10) * 10 .Bottom = CInt(.Bottom * 2.54 / 10) * 10 End With PageSetupDialog1.PageSettings = printerPageSetting 'ページ設定ダイアログの設定 OK ボタンがクリックされたらプレビュー表示 If PageSetupDialog1.ShowDialog() = DialogResult.OK Then Button2.PerformClick() End If End Sub |
|
2.ページ設定ダイアログの設定結果を印刷プレビューに反映 Private Sub Button2_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button2.Click '印刷プレビューのダイアログボックスの表示位置と大きさを設定 'ページ設定ダイアログの設定の内容を反映 PrintDocument1.DefaultPageSettings = printerPageSetting PrintPreviewDialog1.Document = PrintDocument1 '★表示位置を設定 PrintPreviewDialog1.StartPosition = FormStartPosition.Manual PrintPreviewDialog1.Location = New Point(450, 20) '★表示するダイアログの大きさを設定する PrintPreviewDialog1.Size = New Size(440, 640) '★印刷プレビューの表示倍率を指定 PrintPreviewDialog1.PrintPreviewControl.Zoom = 0.4 PrintPreviewDialog1.ShowDialog() End Sub |
|
3.ページ設定ダイアログの設定結果を印刷設定に反映 Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System. _ Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage 'ページ設定で指定した、四角形の位置とサイズを表す 4 つの浮動小数点数を格納します Dim rect As New RectangleF(e.MarginBounds.Left, e.MarginBounds.Top, _ e.MarginBounds.Width, e.MarginBounds.Height) e.Graphics.DrawString(TextBox1.Text, New Font("MS Pゴシック", 12), Brushes.Black, rect) End Sub |
|
別途、下記で印刷データをご用意下さい Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load 'テキストファイルを丸ごと読み込みテキストボックスに表示 TextBox1.Clear() 'テキストファイルを現在のエンコード(シフトJIS)で開く Dim sr As New System.IO.StreamReader("..\..\test.txt", System.Text.Encoding.Default) 'テキストボックスに読込み表示 TextBox1.Text = sr.ReadToEnd 'ストリームを閉じ、システム リソースを解放 sr.Close() End Sub |