tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 印刷で用紙の横向きと縦向きをきりかえる
投稿日: 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つのドキュメントを連続して印刷したいと考えています。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。