2017-04-14 8 views
0

receiptvb.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

[tag : thermal-printer]와 (과) 무슨 관련이 있습니까? – cybermonkey

+0

해당 열의 단일 문자를 인쇄하여 올바른 위치에 렌더링되는지보십시오. – halfer

+0

@halfer 금액 열에 하나의 문자를 인쇄하려고했으나 다음 줄에 여전히 인쇄됩니다. – Sonam

답변

1

이 세 가지 가능성이 있습니다 : 아래

내가 사용하는 코드입니다

  • 귀하의 열 수량 (열 IDX 4)에서 줄 바꿈이있는 문자열을 포함합니다. 이 경우 값을 결합하기 전에 값을 Trim() 수 있습니다.
  • 열 금액에 공백이 많이 포함되어 있거나 줄 바꿈 문자로 시작됩니다. 이 경우 값을 결합하기 전에 amount 변수에서 Trim()을 사용하여이 문제를 해결할 수도 있습니다.
  • 그것은 내가 아직 생각하지 못한 뭔가입니다. :)
+1

downvoter : 앞으로 개선 할 수있는 작은 의견을 제공하십시오. – Mr47

+0

다음과 같이 수량과 양 모두 Trim()을 사용했지만 작동하지 않았습니다. Qty = 트림 (dgvSales.Rows (k) .Cells (4) .Value.ToString.PadRight (5)) amount = 트림 (dgvSales.Rows (k) .Cells (5) .Value.ToString) – Sonam

+0

손질(). 그것은 효과가 있었다. 도와 줘서 고마워. 나에게 많은 것을 의미한다. – Sonam