locked
Differences between POS Printers (formatting) RRS feed

  • Question

  • Dear all,

    I'm developing a POS application, using POS for .NET, and I'm facing some differences between printers (all Epson TM88 series). 

    Independent of the version, there are some differences on how the printer handles formatting codes.

    1. For example; changing the alignment, or fontsize causes a new line on some printer, some not: 
      Printer.PrintNormal(PrinterStation.Receipt, "test")
      Printer.PrintNormal(PrinterStation.Receipt, "\u001b|2C" + "test1")
      Output Printer 1:testtest1
      Output Printer 2:
      test
      test1

    2. For example; some printers ignore the alignment center code: (char)27 + "|cA", some print it well

    Does anyone know where these differences come from, and how to handle them? Are they influenced by some charset, or a printer (hardware) setting? How can I develop code that has (at least on Epson printers) _always_ the same output?

    Thanks in advance!


    • Edited by TJ__ Tuesday, July 14, 2015 7:23 PM typo
    Tuesday, July 14, 2015 7:23 PM

All replies

  • Since there has been no response from anyone else, I suggest that you contact EPSON and see what they have to say about the differences.

    I don't have any EPSON printers to help address your finding.


    Sean Liming - Book Author: Starter Guide SIM (WEI), Pro Guide to WE8S & WES 7, Pro Guide to POS for .NET - www.annabooks.com / www.seanliming.com

    Wednesday, July 15, 2015 8:36 PM
    Answerer
  • Hi Sean,

    Sorry for my late reply; was on holiday.

    First of all, thanks for your answer. I'll contact Epson about this, and let the answer know. In the meantime, to all other users: any idea?


    Friday, August 7, 2015 12:40 PM
  • 1.I think compliant UnifiedPOS version are different for each service object.

      The printer 1 results conforms to UnifiedPOS 1.7 or prior.
      The printer 2 results conforms to UnifiedPOS 1.8 and later.

      Please refer to following section at page 30-17 of UnifiedPOS 1.14.1.
      "Release 1.8 and later – Synchronous Printing – Updated in Release 1.10"

      In printer 2 case, must raise exception in UnifiedPOS 1.8 and later,
      but I think the service object was complemented the last line feed code for user convenience.

    2.You may have hit the following notes of the justification ESC/POS command(ESC a n).

      - The command is enabled only when input at the beginning of the line.
      - If this command is input in page mode, the printer performs only internal flag operation.
      - This command does not affect printing in page mode.
      - Lines are justifiedwithin the specified printing area.

      In addition, depending on the type or firmware version of the printer, the printer may not support this feature.

    Friday, September 25, 2015 12:30 PM
  • First of all: thanks for your detailed answer!

    I'm trying to understand what you're saying, but I'm not getting it totally.

    I've shipped Epson OPOS ADK 2.70E with the application, which is based on UPOS 1.13 if i'm correct. So I'm guessing the difference between 1.7 and 1.8 is not the case. I don't have control over the firmware version of the printers used, unfortunately, so I can't check that. 

    What do you mean by: but I think the service object was complemented the last line feed code for user convenience.

    In addition; do you have some advice for me, how to get the results the same? Even if the difference between UPOS versions is the case, how could I improve my code, so I give the same results?

    Again, I really appreciate your input!


    Tuesday, September 29, 2015 5:27 PM
  • My advice is, the application should be buffering all of data per line.
    Then, edits print layout of whole line by the application.
    Finally, do print request with specifying all of the data of one line in a single PrintNormal.

    That way, the difference between the specifications of the printer or service object does not problem.

    Alternatively, the possibility to solve is very small, please try the use of TransactionPrint like below.

    Printer.TransactionPrint(PrinterStation.Receipt, PrinterTransactionControl.Transaction)
    Printer.PrintNormal(PrinterStation.Receipt, "test")
    Printer.PrintNormal(PrinterStation.Receipt, "\u001b|2C" + "test1")
    Printer.PrintNormal(PrinterStation.Receipt, "\n")
    Printer.TransactionPrint(PrinterStation.Receipt, PrinterTransactionControl.Normal)


    "What do you mean by: but I think the service object was complemented the last line feed code for user convenience."

    About this, I think the vendor has consideration for existing application and user.
    Even if they are updated to the new version only service objects without changing the application, as exception does not occur.

    Thursday, October 1, 2015 7:04 PM