タイトル : 印刷で用紙の横向きと縦向きをきりかえる 投稿日 : 2008/03/06(Thu) 11:26 投稿者 : ひでと
お世話になります。 表を印刷する処理を作っています。縦長の表と横長の表を用紙向きを切り替えて 出力する必要があります。こちらで Landscapeを操作する方法がのっていたのですが うまく切り替えることができません。下記に試したものを乗せますので アドバイスお願いします。 Public Class Form1 Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Dim Ret As DialogResult PrintPreviewDialog1.Document = Me.PrintDocument1 Ret = PrintPreviewDialog1.ShowDialog() End Sub Private Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click Dim Ret As DialogResult PrintPreviewDialog1.Document = Me.PrintDocument2 Ret = PrintPreviewDialog1.ShowDialog() End Sub Private Sub PageSetting1(ByVal sender As Object, ByRef e As System.Drawing.Printing.PrintPageEventArgs) 'Dim sender As New System.Drawing.Printing.PrintDocument '通常使うプリンターのPageSettingsを取得 Dim dftPSettings As New System.Drawing.Printing.PageSettings 'dftPSettings = sender.PrinterSettings.DefaultPageSettings dftPSettings.Landscape = False With e.PageSettings .Landscape = False .Margins.Left = 20 * 39.37 / 10 - dftPSettings.HardMarginX .Margins.Right = 10 * 39.37 / 10 - dftPSettings.HardMarginX .Margins.Top = 10 * 39.37 / 10 - dftPSettings.HardMarginY .Margins.Bottom = 10 * 39.37 / 10 - dftPSettings.HardMarginY End With End Sub Private Sub PageSetting2(ByVal sender As Object, ByRef e As System.Drawing.Printing.PrintPageEventArgs) 'Dim sender As New System.Drawing.Printing.PrintDocument '通常使うプリンターのPageSettingsを取得 Dim dftPSettings As New System.Drawing.Printing.PageSettings 'dftPSettings = sender.PrinterSettings.DefaultPageSettings dftPSettings.Landscape = Not dftPSettings.Landscape With e.PageSettings .Landscape = Not .Landscape .Margins.Left = 10 * 39.37 / 10 - dftPSettings.HardMarginX .Margins.Right = 10 * 39.37 / 10 - dftPSettings.HardMarginX .Margins.Top = 20 * 39.37 / 10 - dftPSettings.HardMarginY .Margins.Bottom = 10 * 39.37 / 10 - dftPSettings.HardMarginY End With End Sub Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage e.HasMorePages = False End Sub Private Sub PrintDocument2_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument2.PrintPage e.HasMorePages = False End Sub End Class 上記を実行すると どちらも縦向きの用紙がプレビューされてしまいます。 補足 実際は Buttun1_Click で2つのドキュメントを連続して印刷したいと考えています。 |