Public Class Form1 Dim 頁数 As Integer Dim 文字列() As String = {"aaaaaaaaaaaaa", "bbbbbbbbb", "ccccccccccccc"} Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click 頁数 = 0 PrintPreviewDialog1.Document = PrintDocument1 Me.PrintPreviewDialog1.ShowDialog() End Sub
Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage Dim フォント As Font = New Font("MS ゴシック", 8) Do Until 頁数 = 文字列.Length e.Graphics.DrawString(文字列(頁数).Replace(vbCrLf, " "), フォント, Brushes.Black, e.MarginBounds.Left, 100) 頁数 += 1 If 頁数 < 文字列.Length Then e.HasMorePages = True Return End If Loop 'ちなみにDo〜Loopの代わりに下記の文だとOK 'e.Graphics.DrawString(文字列(頁数).Replace(vbCrLf, " "), フォント, Brushes.Black, e.MarginBounds.Left, 100) End Sub End Class
分類:[(未選択)]
すみませんが、印刷について教えてください。
使用言語は VB2005 Express Edition です。
複数ページを印刷プレビューダイアログで表示はできるんですが、
そこから印刷ボタンを押しても用紙が空送りされるだけで印刷されません。
複数ページを印刷プレビューから印刷させるにはどうしたらよいのでしょうか?
簡単なサンプルを作りましたので、それが3枚に印刷できればOKです。
フォームにButton1,PrintPreviewDialog1,PrintDocument1を貼り付けて
Codeは下記の通りです。
Public Class Form1
Dim 頁数 As Integer
Dim 文字列() As String = {"aaaaaaaaaaaaa", "bbbbbbbbb", "ccccccccccccc"}
Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
頁数 = 0
PrintPreviewDialog1.Document = PrintDocument1
Me.PrintPreviewDialog1.ShowDialog()
End Sub
Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
Dim フォント As Font = New Font("MS ゴシック", 8)
Do Until 頁数 = 文字列.Length
e.Graphics.DrawString(文字列(頁数).Replace(vbCrLf, " "), フォント, Brushes.Black, e.MarginBounds.Left, 100)
頁数 += 1
If 頁数 < 文字列.Length Then
e.HasMorePages = True
Return
End If
Loop
'ちなみにDo〜Loopの代わりに下記の文だとOK
'e.Graphics.DrawString(文字列(頁数).Replace(vbCrLf, " "), フォント, Brushes.Black, e.MarginBounds.Left, 100)
End Sub
End Class