none
Save bitmap in NVRAM of PosPrinter

    Question

  • Hi,

    I'm using an Epson TM-T88IV.
    For a while I try to store a bitmap on the printer using the SetBitmap function.
    The methode works and I was able to print that bitmap using the esc-sequence for priting bitmaps stored in memory.
    But if I restart the testprogram the printer doesn't know that bitmap anymore.
    So I suggest the bitmap wasn't stored in the device-memory but in the service object memory.

    The point is I set the checkbox "Save Images in NVRAM" true with the configsoftware of epson.
    So why is the bitmap not stored on the device?

    Thanks for repley,
    Jan
    Wednesday, September 16, 2009 8:05 AM

Answers

  • Hi,

    Sadly, not that I know of... at least not in a device independent way. I think Epson have their own escape codes for printing images, and if it's the service object messing up the image then using those might bypass it and provide a better result, but it would likely only work for Epson printers and it's not a solution I'd recommend. I also don't know how to do it in detail.

    Two questions;

    1. When you say using TMFLogo provides a better result, is that with the same images (I presume it is, I'm just checking) ?

    2. Since you are resizing the image yourself, have you checked the image after you've resized it to see what it looks like ? Is it the resize code that is messing it up ?
    • Marked as answer by JanBaa Monday, September 28, 2009 5:42 AM
    Sunday, September 20, 2009 9:19 PM
    Answerer

All replies

  • Hi,

    I too have had this problem. I think there are two issues;

    1. Not all receipt printers (at least in the past) had NVRAM, and the UPOS standard on which Pos .Net is based and that dictates how things work wanted to operate correctly on the largest range of devices possible, this meant ignoring NVRAM... although a better solution would have to been to expose a CapNVram property and maybe a UseNVRamForImages property on the device classes, but that's obviously not what they did.

    2. It's entirely possible the UPOS specification doesn't actually say where to store the bitmap ( I still haven't read the UPOS spec myself, so I'm only guessing here) and in that case every service object developer is 'free' to do whatever they think is best/easiest.

    I agree, it's a real shame that NVRam isn't used by default and even worse that you can't know programmatically whether it is or not.

    BTW... I haven't used a lot of OPOS devices, but the Epson service objects are the only one's I've seen that have the checkbox for NVRam, so unless you want to limit your application to Epson hardware I would suggest not relying on it.

    Printing images in OPOS/Pos .Net can be a real problem as many different service objects have different rules, see my blog entry here;

    http://www.yortondotnet.com/2009/08/pos-net-series-post-5-tpg-and-epson.html

     

    Wednesday, September 16, 2009 9:25 PM
    Answerer
  • It drives me crasy ...

    Now I know how big my Image should be and the Printer does print in a unbeliveable bad quality.
    If I use a tool from Epson, TM Flash Logo, to instal images on Printers, the quality is much better.
    But than I've got the problem to get the image out of the cash - and that is, as I know, not possible with Pos.Net.

    So ...
    Is there a way to print an image without letting the printer compress the image?

    I'm very thankful for any help...
    Friday, September 18, 2009 1:36 PM
  • Hi,

    Sadly, not that I know of... at least not in a device independent way. I think Epson have their own escape codes for printing images, and if it's the service object messing up the image then using those might bypass it and provide a better result, but it would likely only work for Epson printers and it's not a solution I'd recommend. I also don't know how to do it in detail.

    Two questions;

    1. When you say using TMFLogo provides a better result, is that with the same images (I presume it is, I'm just checking) ?

    2. Since you are resizing the image yourself, have you checked the image after you've resized it to see what it looks like ? Is it the resize code that is messing it up ?
    • Marked as answer by JanBaa Monday, September 28, 2009 5:42 AM
    Sunday, September 20, 2009 9:19 PM
    Answerer
  • That is correct.  According to UPOS specification the saved bitmap is made to that specific application.  It should remain available to your application after you release the device, but not after you close the device (note however that not all SO's implement this correctly and some may require that you reload the bitmap after you release the device).   So generally you will load the bitmap at app start.  This means you only need to load it once, but you do need to load it.

    I recommend that you take a look at the UPOS spec:

    http://www.nrf-arts.org/UnifiedPOS/default.htm

    Thursday, September 24, 2009 3:09 AM
  • @Yort:
    1. Yes, it is the same image.
    2. Yes I checked the image, after resizing it still looks a better than the way it is printed.

    I will try to implement it the device dependent way...

    Thanks for your help.
    Monday, September 28, 2009 5:42 AM