0
我試圖將我的datagridview的內容打印到合法或長尺寸的銅版紙上,但我找不到使預覽對話框中的紙張長的代碼。這裏是我的打印預覽和打印代碼:如何在vb.net中將紙張大小設置爲合法
Private Sub btnPreview_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPreview.Click
Dim strcon As New OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;Data Source=C:\Users\user\Documents\Visual Studio 2008\Projects\NMGInventory\NMGInventory\Supplies.mdb")
Try
strcon.Open()
Dim sql As String
sql = "SELECT * From [product info]"
Dim adapter As New OleDbDataAdapter(sql, strcon)
Dim dt As New DataTable("product info")
adapter.Fill(dt)
print.DefaultPageSettings.Landscape = True
.
preview.PrintPreviewControl.Zoom = 1
preview.Document = print
preview.Show()
AddHandler print.PrintPage, AddressOf print_PrintPage
strcon.Close()
Catch Ex As Exception
MessageBox.Show(Ex.Message)
End Try
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
Dim CellRightPos As Integer = print.PrinterSettings.DefaultPageSettings.Margins.Right
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 CellWidth1 = DataGridView1.Rows(3).Cells(Cell).Size.Width + -30
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