Печать формы в альбомной ориентации с использованием функции PrintForm
У меня есть вопрос, я пытаюсь распечатать форму в альбомной ориентации, чтобы она могла распечатать все содержимое формы.
Вот предварительный просмотр печати, который выглядит как обрезанный.
Я использую этот код, чтобы распечатать его, а также использовать ландшафтный режим для истинного поиска в 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 ответ
Я сделал это некоторое время назад из чего-то, что я нашел в поиске 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