Print and Preview DataGridView in Landscape format
Asked Answered
D

2

6
 Private Sub btnPreview_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPreview.Click
    preview.PrintPreviewControl.Zoom = 1
    preview.Document = print
    print.PrinterSettings.DefaultPageSettings.Landscape = True
    preview.Show()

    AddHandler print.PrintPage, AddressOf print_PrintPage

End Sub

Protected Sub print_PrintPage(ByVal sender As Object, ByVal e As PrintPageEventArgs)
    Dim ColumnCount As Integer = DataGridView1.ColumnCount
    Dim RowCount As Integer = DataGridView1.RowCount

    Dim CellTopPos As Integer = print.PrinterSettings.DefaultPageSettings.Margins.Top

    For Row = 0 To RowCount - 1

        Dim CellLeftPos As Integer = print.PrinterSettings.DefaultPageSettings.Margins.Left

        For Cell = 0 To ColumnCount - 1

            Dim CellValue As String = DataGridView1.Rows(Row).Cells(Cell).Value.ToString()
            Dim CellWidth = DataGridView1.Rows(Row).Cells(Cell).Size.Width + 50
            Dim CellHeight = DataGridView1.Rows(Row).Cells(Cell).Size.Height

            Dim Brush As New SolidBrush(Color.Black)
            e.Graphics.DrawString(CellValue, New Font("Century Gothic", 10), Brush, CellLeftPos, CellTopPos)
            e.Graphics.DrawRectangle(Pens.Black, CellLeftPos, CellTopPos, CellWidth, CellHeight)

            CellLeftPos += CellWidth
        Next

        CellTopPos += DataGridView1.Rows(Row).Cells(0).Size.Height
    Next

End Sub

This is my code for previewing and printing the contents of my datagridview. I tried using the DefaultPageSettings code but it doesn't work. Im also trying to print it in centered format

Donn answered 3/4, 2013 at 12:9 Comment(0)
L
6

Try setting the DefaultPageSettings property of the PrintDocument, not PrinterSettings:

'PrintDocument1.PrinterSettings.DefaultPageSettings.Landscape = True
PrintDocument1.DefaultPageSettings.Landscape = True
Loretaloretta answered 3/4, 2013 at 13:34 Comment(1)
How can i center the content of my print preview?Donn
D
0

Can be used like this CODE

    Dim preview As PrintPreviewDialog
    Dim PageSetup As PageSetupDialog
    PageSetup = New PageSetupDialog
    preview = New PrintPreviewDialog
    PageSetup.PageSettings = PrintDocument1.DefaultPageSettings
    PageSetup.ShowDialog()
    preview.PrintPreviewControl.Zoom = 1
    preview.Document = PrintDocument1

    preview.ShowDialog()
Darling answered 13/11, 2014 at 8:27 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.