我已经开发了一个餐厅计费网络应用程序(不是桌面应用程序,因为这是一个Web应用程序运行在浏览器中)使用ASP.NET Web Forms C# 4.0。现在,新的要求是POS热打印机收据打印。我对POS非常陌生,但不知怎的,我成功地构建并运行了一个示例,使用c#在c#上打印。
问题是我无法在本地主机网站上使用相同的代码打印。我用的是OPOS CCO,OposForDotNetAssemblies-1_13_000。
我的问题是:
我所使用的守则是:
using POS.Devices;
private OPOSPOSPrinter Printer = null;
protected void Button1_Click(object sender, EventArgs e)
{
Printer = new OPOSPOSPrinterClass();
// Open the printer.
Printer.Open("PosPrinter");
Printer.ClaimDevice(1000);
Printer.AsyncMode = true;
Printer.DeviceEnabled = true;
Printer.ResultCode;
Printer.PrintNormal(2, "\x1B|cA\x1B|2CHeading\x1B|1C\n"+DateTime.Now.ToString("D")+"\n\n" );
Printer.CutPaper(1);
Printer.Close();
}有趣的是,没有错误,但我听到嘟嘟,直到超时,然后打印机打印一些点和字符在一行,而没有其他。这在windows窗体中没有发生。提前谢谢。
发布于 2015-04-10 20:52:01
我最近开发了一个POS Web应用程序,它使用热打印机打印收据,它使用本地打印机
您只需使用javascript来捕获容器或.....your内容。
只需使用window.print() n来打印您的收据就可以了。
发布于 2015-01-12 09:05:59
公共子GiftReceipt()
试一试
Dim displayString As String
Dim ESC As String = Chr(&H1B)
displayString = ESC + "!" + Chr(1) + ESC + "|cA" + "Store Name" + ESC + "|1lF"
displayString += ESC + "|cA" + "Store Address" + ESC + "|1lF"
displayString += ESC + "|2C" + ESC + "|cA" + ESC + "|bC" + "Gift Receipt" + ESC + "|1lF" + ESC + "|1lF"
displayString += ESC + "|N" + ESC + "!" + Chr(1) + " Transaction #: " + vbTab.ToString() + "105" + ESC + "|1lF"displayString +=“Date:”+ Date.Today() + vbTab.ToString() + "Time:“
displayString += DateAndTime.Now().ToLongTimeString() + ESC + "|1lF"
displayString += " Cashier: " + CStr(_currSess.Cashier.Number) + vbTab.ToString() + "Register: " + CStr(_currSess.Register.Number) + ESC + "|1lF" + ESC + "|1lF"
displayString += ESC + "|2uC" + " Item Description Quantity" + ESC + "|N" + ESC + "!" + Chr(1) + ESC + "|1lF" + ESC + "|1lF" + " "
'Iterate loop for each row of the Data Set.
For k As Integer = 0 To TransactionSet1.TransactionEntry.Rows.Count - 1
'Checking for each row which has selected in DataGrid item.
If CType(dgTransactionList.Item(k, 0), System.String) = "True" Then
'Get the Item value from selected row.
Dim item As String = dgTransactionList.Item(k, 1).ToString()
Dim itemValue As String = String.Empty
If item.Length > 11 Then‘如果项目长度大于11,则取项目0到11的子字符串。Item = item.Substring(0,11) of’在项字符串中添加“”,直到长度11。而item.Length <= 11
item += " "
End While
End If
displayString += item + vbTab.ToString()
Dim desc As String = dgTransactionList.Item(k, 2).ToString()
Dim descValue As String = String.Empty
If desc.Length > 20 Then
'If Description length is greater then 20, then take substring of item 0 to 20.
desc = desc.Substring(0, 20)
Else
While desc.Length <= 20
'Adding " " in Description string until length 20.
desc += " "
End While
End If
displayString += desc + vbTab.ToString()
Dim qnty As String = dgTransactionList.Item(k, 3).ToString()
Dim qntyValue As String = String.Empty
If qnty.Length > 3 Then
'If Quantity length is greater then 20, then take substring of quantity 0 to 3.
qnty = qnty.Substring(0, 3)
Else
While qnty.Length <= 3
'Adding " " in Quantity string until length 20.
qntyValue += " "
qnty += " "
End While
End If
qntyValue += qnty.Trim()
displayString += qntyValue
displayString += ESC + "|1lF" + " "
End If
Next k
displayString += ESC + "|1lF"
displayString += ESC + "|cA" + "Thank You for shopping" + ESC + "|1lF"
displayString += ESC + "|cA" + _currSess.Configuration.StoreName + ESC + "|1lF"
displayString += ESC + "|cA" + "We hope you'll come back soon!" + ESC + "|1lF" + ESC + "|1lF" + ESC + "|fP"
_currSess.Register.SetActivePrinterNumber(0)
Dim objRp As Object = _currSess.Register.ReceiptPrinter
objRp.PrintNormal(2, displayString))
objRp.Release()
MsgBox("Gift Receipt printed Successfully.")
Catch ex As Exception
MsgBox(ex.ToString())
End Try结束子对象
https://stackoverflow.com/questions/23486930
复制相似问题