用紙サイズの取得及び設定・印刷部数・印刷方向の設定 (4個) (SNo.057) 1.用紙サイズを取得・設定する(直接プログラムで指定) 2.用紙方向横向き/縦向きで印刷 3.印刷部数を設定する |
|
使用コントロール | Button1 〜 Button3 PrintDocument1 PrintPreviewDialog1 |
その他条件 | WindowsXP(Vista) Visual Basic 2005(VB2008) |
1.印刷用紙サイズの取得及び設定
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click '用紙サイズを指定する Dim pPaperSz As System.Drawing.Printing.PaperKind pPaperSz = Printing.PaperKind.JapanesePostcard 'はがきサイズの定数 ' pPaperSz = Printing.PaperKind.A4 'A4 サイズの定数 Dim pkSize As System.Drawing.Printing.PaperSize Dim setPaperSize As Boolean = False '★ サポートされている用紙サイズの一覧を取得 For Each pkSize In PrintDocument1.PrinterSettings.PaperSizes '指定の用紙サイズがサポートされているか If pkSize.Kind = pPaperSz Then '指定の用紙サイズが見つかったら用紙サイズを設定する PrintDocument1.DefaultPageSettings.PaperSize = pkSize setPaperSize = True '設定完了のフラグ End If Next '確認のためにプレビューを表示 If setPaperSize Then '設定が無事できたら PrintPreviewDialog1.Document = PrintDocument1 PrintPreviewDialog1.Size = New Size(800, 900) PrintPreviewDialog1.PrintPreviewControl.Zoom = 1.0 PrintPreviewDialog1.ShowDialog() Else MessageBox.Show("指定の用紙サイズが設定できませんでした。") End If End Sub |
|
2.印刷する用紙方向の設定 Private Sub Button2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click '用紙方向横向き/縦向きで印刷 PrintDocument1.DefaultPageSettings.Landscape = Not _ PrintDocument1.DefaultPageSettings.Landscape 'PrintDocument1.DefaultPageSettings.Landscape = True '横向き '確認のためにプレビューを表示 PrintPreviewDialog1.Document = PrintDocument1 PrintPreviewDialog1.Size = New Size(800, 900) PrintPreviewDialog1.PrintPreviewControl.Zoom = 1.0 PrintPreviewDialog1.ShowDialog() End Sub |
|
3.印刷部数の設定 Private Sub Button3_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button3.Click '印刷部数を2部印刷 PrintDocument1.PrinterSettings.Copies = 2 '確認のためにプレビューを表示(表示では確認できませんので印刷を) PrintPreviewDialog1.Document = PrintDocument1 PrintPreviewDialog1.Size = New Size(800, 900) PrintPreviewDialog1.PrintPreviewControl.Zoom = 1.0 PrintPreviewDialog1.ShowDialog() End Sub |
|
上記でプレビュー確認される場合は下記をご利用下さい。 Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System. _ Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage '印刷位置をmm単位で指定しての簡単なテキストの印刷 'テキストボックスの内容を印刷 Dim g As Graphics = e.Graphics 'ミリメートルを長さの単位に指定します。 g.PageUnit = GraphicsUnit.Millimeter 'テキストボックスの内容を印刷する場合 g.DrawString(TextBox1.Text, _ New Font("MS Pゴシック", 12), Brushes.Black, 0, 0) 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 |