Question

I have developed a Restaurant Billing Web App (Not Desktop application as the requirement was a web-app to be run in browser) Using ASP.NET Web Forms C# 4.0. Now the new Requirement is POS thermal Printer receipt printing. I am very new to POS, but somehow I managed to build and run a Sample Windows Form Application to print on POSIFLEX PP6800 Thermal Receipt Printer using c#.

The Problem is that I am unable to print using the same Code on the Localhost website. I am using OPOS CCO, OposForDotNetAssemblies-1_13_000.

My Questions are:

  1. Is it possible to print on OPOS on LocalHost ?
  2. Is it possible to Print on OPOS over Internet Website ?
  3. If Yes then what should I do? What am I doing wrong?

The Code I am Using is:

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();
 }

Interestingly there is no Error, but I hear Beeps till the timeout and then printer prints some dots and characters in one line and nothing else. Which is not happening in the windows form. Thanks in advance.

Was it helpful?

Solution

i recently developed a POS Web Application which uses thermal printer to print Receipts , it uses a local printer

you simply use javascript to capture the container or .....your content

and simply call it using window.print() nto print your receipt it works for me

OTHER TIPS

Public Sub GiftReceipt()

Try

    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

'if Item length is greater then 11, then take substring of item 0 to 11. item = item.Substring(0, 11) Else 'Adding " " in Item string until length 11. While 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

End Sub

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top