2013-04-23 83 views
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 

回答

0

設置以下設置

Dim xCustomSize As New PaperSize("Legal", 850, 1400) 

     Me.DefaultPageSettings.PaperSize = xCustomSize 
相關問題