Программно задать вертикальный сдвиг DOC.PrintPage при выводе на печать

ekety

Есть форма, которая после заполнения выводит текст на печать:
Private Sub DOC_print(ByVal sender As Object, ByVal e As Printing.PrintPageEventArgs) Handles DOC.PrintPage
Необходимо в форме сделать выбор вертикального сдвига текста при выводе в предварительный просмотр. То есть, когда печатаем на чистом листе сдвиг равен 0, если же используем фирменный бланк с шапкой сдвиг 3 сантиметра. Подскажите пожалуйста каким образом это можно сделать?Вышел из ситуации следующим способом: Форма, textbox1, Button1. PageSetupDialog дает редактировать поля. Для того чтобы поля регулировались, необходимо в свойствах PrintDocument1 установить OriginAtMargins = True , иначе поля не регулируются.
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        PageSetupDialog1.PageSettings = PrintDocument1.DefaultPageSettings
        If PageSetupDialog1.ShowDialog() = DialogResult.OK Then
            PrintDocument1.DefaultPageSettings = PageSetupDialog1.PageSettings
        End If
        Try
            PrintPreviewDialog1.Document = PrintDocument1
            PrintPreviewDialog1.ShowDialog()
        Catch exc As Exception
 
        End Try
    End Sub
 
    Private Sub PrintDocument1_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
        e.Graphics.DrawString(TextBox1.Text, New System.Drawing.Font("ms sans serif", 12, FontStyle.Bold), Brushes.Black, 10, 10)
    End Sub
End Class
1 ответ

ekety

Для того, чтобы регулировать отступ с формы создал на ней combobox, в коллекцию ввел значения отступа в пикселях. В кнопке "печать" дописал:
PrintDocument1.OriginAtMargins = True
PrintDocument1.DefaultPageSettings.Margins = New Printing.Margins(20, 10, ComboBox1.Text, 10)
Собственно таким образом можно задавать все поля.