locked
OPOS TransactionPrint of SlipPrinter Problems RRS feed

  • Question

  • To be honest I am not sure if this is the correct forum for this, but I am unable to find a more suitable one, so here goes.

    I have produced a POS system that uses slip printers, we use the OPOS TransactionPrint method for output the invoice content.  All works well until the invoie runs over one page.  The event to indicate the slip is near the end is not raised, but a TransactionPrint illegal operation exception is thrown.  The exception seems to be thrown becuase we of the paper change in the middle of the Transaction print. 

    My question is how do I a) get the events to be handled correctly, or b) stop it throwing an exception?

    Either solution will work for me, but obviously I prefer the first.

    Best regards, and thanks for your help.

    Monday, March 21, 2011 2:13 PM

Answers

  • Hello Townsma,

    I do not use the TransactionPrint method, I rather have more programming control over the slip printing process

    I check each line being printed (header, detail, footer) )and compare it to the last line that can be printed on my defined slip parameters. When that line is reached, eject the paper.

    Then do DEVICE.FreezeEvents = True while the new paper is being inserted, use your message box to stop the process.

    Once the user presses enter after the paper is inserted then do DEVICE.FreezeEvents = False, adavance a couple of lines and start printing again. Keep cheking the last line that can be printed.

    I did this because the DEVICE.SlpLinesNearEndToEnd is a joke. Good luck.

    Humberto

     

    Tuesday, March 22, 2011 1:00 AM

All replies

  • There is a forum for programming POS systems, but it is centered on POS for .NET: http://social.msdn.microsoft.com/Forums/en-US/posfordotnet/threads

    You can post to see if someone has experience to share.

    -Sean


    www.sjjmicro.com / www.seanliming.com / www.annabooks.com, Book Author - ProGuide to WES 7, XP Embedded Advanced, WEPOS / POS for .NET Step-by-Step
    Monday, March 21, 2011 2:23 PM
  • Hello Townsma,

    I do not use the TransactionPrint method, I rather have more programming control over the slip printing process

    I check each line being printed (header, detail, footer) )and compare it to the last line that can be printed on my defined slip parameters. When that line is reached, eject the paper.

    Then do DEVICE.FreezeEvents = True while the new paper is being inserted, use your message box to stop the process.

    Once the user presses enter after the paper is inserted then do DEVICE.FreezeEvents = False, adavance a couple of lines and start printing again. Keep cheking the last line that can be printed.

    I did this because the DEVICE.SlpLinesNearEndToEnd is a joke. Good luck.

    Humberto

     

    Tuesday, March 22, 2011 1:00 AM
  • Many thanks for you idea.  Previously I also did it that way, but I found the printing process was much slower then we output one line at a time.  Hence the reason for using TransactionPrint, the entire printing process is much smoother and much faster.  Teh only issue I have is for the one in one hundred invoices where the invoice will not fit on one sheet. 

    With regards to the NEarToEnd, I have always used Epson slip printers and found it to work very well.

    So at this point I am not ready to recode the invoice printing module, unless there really is no other option

    Thanks

    Thursday, March 24, 2011 3:49 AM