2
我正在开发一个超市系统,它将在使用.net开票后打印pos账单。.net pos打印机滚印
对于票据打印,我在.net中使用System.Drawing.Printing。
问题是当项目列表太长,当它增加一页限制pos打印机只打印第一页和切纸。
以下是我使用的打印代码示例。请帮我解决这个问题。
Private Sub printInvoice()
Dim printDocument As New PrintDocument
Dim printController As New StandardPrintController
printDocument.PrintController = printController
AddHandler printDocument.PrintPage, AddressOf PrintDocumnet_Event
printDocument.Print()
End Sub
Public Sub PrintDocumnet_Event(ByVal sender As Object, ByVal e As PrintPageEventArgs)
Try
Dim dataFont As Font = New Font("Courier New", 9, FontStyle.Bold)
Dim leftMargin As Integer = 15
Dim topMargin As Integer = 65
For Each invoiceRow As DataRow In dtInvoice.Rows
Dim code As String = invoiceRow("Item_Code").ToString.Trim
Dim name As String = invoiceRow("Print_Name").ToString.Trim
Dim price As String = String.Format("{0:0.00}", Double.Parse(invoiceRow("Price"))) + "x"
Dim qty As String = String.Format("{0:0.###}", Double.Parse(invoiceRow("Qty")))
Dim amont As String = String.Format("{0:0.00}", Double.Parse(invoiceRow("Amount")))
Dim discount As String = String.Format("{0:0.00}", Double.Parse(invoiceRow("Discount")))
e.Graphics.DrawString(String.Format("{0,-8}", name), dataFont, Brushes.Black, leftMargin, topMargin)
topMargin += 15
e.Graphics.DrawString(String.Format("{0,-10} {1,7} {2,5} {3,8}", code, price, qty, amont), dataFont, Brushes.Black, leftMargin, topMargin)
topMargin += 20
Next
End Sub
您指的是什么POS打印机? ESC代码控制打印机可能不容易吗? – t0mm13b
我正在使用EPSON TM-T81 POS打印机。打印完成后会自动裁切纸张。这里的问题是打印机在打印完一页后切纸。其余的页面不打印。 – las
首先,我会仔细检查你的页面长度设置是什么,因为它是一个卷,你应该能够使它很长。我找不到TM-181手册,但其他Epson打印机的最大打印速度为1289英寸,并确保您使用一个PrintDocument –