2017-04-14 96 views
0

receipt在vb.net打印收據

我想使用vb.net打印上述收據。但是,如圖中所示,金額數字出現在新行中。我究竟做錯了什麼?

下面是我使用的代碼:

Private Sub PrintDocument1_PrintPage(sender As Object, e As PrintPageEventArgs) Handles PrintDocument1.PrintPage 

     Dim offset As Integer = 15 
    Dim itemdesc As String = "Item".PadRight(30) 
     Dim Pricedesc As String = "Price".PadRight(8) 
     Dim qtydesc As String = "Qty".PadRight(5) 
     Dim amtdesc As String = "Amount" 
     Dim descline As String = itemdesc + Pricedesc + qtydesc + amtdesc 
     e.Graphics.DrawString(descline, New Font("Courier New", 8, FontStyle.Regular), Brushes.Black, 25, 100 + offset) 
     offset += 10 
    Dim startx As Integer = 25 
     Dim starty As Integer = 100 

     Dim font As New Font("Courier New", 8, FontStyle.Regular) 
     Dim item As String 
     Dim price As String 
     Dim qty As String 
     Dim amount As String 

    Dim productline As String 
     For k As Integer = 0 To dgvSales.RowCount - 2 

      item = dgvSales.Rows(k).Cells(1).Value.ToString.PadRight(30) 
      price = dgvSales.Rows(k).Cells(3).Value.ToString.PadRight(8) 
      qty = dgvSales.Rows(k).Cells(4).Value.ToString.PadRight(5) 
      amount = dgvSales.Rows(k).Cells(5).Value.ToString 
      productline = item + price + qty + amount 
      e.Graphics.DrawString(productline, font, Brushes.Black, startx, starty + offset) 
      offset += 20 

     Next 
End Sub 
+0

這與[標籤:熱敏打印機]有什麼關係? – cybermonkey

+0

嘗試在該列中打印單個字符以查看它是否會在正確的位置呈現? – halfer

+0

@halfer我試圖在金額列中打印單個字符,但仍然打印在下一行 – Sonam

回答

1

有三種可能性:

  • 你列數量(列IDX 4)包含中有一個換行符的字符串。如果是這種情況,則可以在加入值之前將Trim()的值加上。
  • 您的列數量包含許多空格,或以換行符開頭。如果是這種情況,您也可以在加入值之前使用Trim()來修復它,這次在變量amount上。
  • 這是我還沒有想到的其他東西:)。
+1

對於downvoter:請在未來提供一個小的評論,以指出可以改進的地方。 – Mr47

+0

我使用修剪()爲數量和金額如下,但沒有奏效。 qty = Trim(dgvSales.Rows(k).Cells(4).Value.ToString.PadRight(5)) amount = Trim(dgvSales.Rows(k).Cells(5).Value.ToString) – Sonam

+0

我用過修剪()。有效。感謝您的幫助。對我很重要。 – Sonam