Печать формы в альбомной ориентации с использованием функции PrintForm - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть вопрос, я пытаюсь распечатать форму в альбомной ориентации, чтобы она могла распечатать все содержимое формы.

Вот предварительный просмотр, который выглядит как обрезанный.

enter image description here

Я использую этот код, чтобы распечатать его, а также использую ландшафтный режим для поиска в Google.

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Me.PrintForm1.PrinterSettings.DefaultPageSettings.Landscape = True
    Me.PrintForm1.PrintAction = Printing.PrintAction.PrintToPreview
    Me.PrintForm1.Print()
End Sub

Но это имеет тот же результат.Спасибо.

1 Ответ

1 голос
/ 17 апреля 2019

Я делал это давно, из того, что нашел в поиске Google. Появится диалоговое окно с настройками принтера, где вы можете выбрать ландшафт перед печатью. Если память служит, Printform.PrinterSettings.DefaultPageSettings.Landscape только для чтения или имеет проблему. В любом случае, не могу вспомнить, вам нужно будет добавить PageSetupDialog и PrintDocument в форму. Затем измените свой код на это:

    PageSetupDialog1.Document = PrintDocument1
    If PageSetupDialog1.ShowDialog = DialogResult.OK Then
        PrintForm1.PrinterSettings = PageSetupDialog1.PrinterSettings
        If PrintForm1.PrinterSettings.IsValid Then
            PrintForm1.Print()
        End If
    End If

Когда вы нажимаете кнопку1, вам будет предложено диалоговое окно настройки страницы, где вы можете выбрать альбомную ориентацию. Нажмите ОК, и ваша форма должна напечатать пейзаж.

Полагаю, если вы не хотите, чтобы диалоговое окно «Параметры страницы» можно было просто напечатать, установив для параметров PageSetupDialog1 значение «Пейзаж».

    PageSetupDialog1.Document = PrintDocument1
    PageSetupDialog1.PrinterSettings.DefaultPageSettings.Landscape = True
    PrintForm1.PrinterSettings = PageSetupDialog1.PrinterSettings
    If PrintForm1.PrinterSettings.IsValid Then
        PrintForm1.Print()
    End If
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...