Jul 172013
 

Hello everyone,

I wanted to talk a little bit today about the DYMO SDKs and compatibility with Windows 8. I’ll start with a quick answer: DYMO SDKs only work with Windows 8 desktop style applications. They do not work with Metro/Modern/RT style applications. Let’s dig a little deeper into why our SDKs do not work in Metro style applications and I will also describe a workaround for printing DYMO labels within a Metro application.

Metro Applications and COM

All of our SDKs use core DYMO assemblies that are installed with DYMO Label Software (DLS). For our older DYMO Label SDK, you add a reference to the DYMO COM objects directly in your application. For our “native” .NET DYMO Label Framework, we’ve created a wrapper assembly that calls our core DYMO assemblies through COM. Either way, COM is a necessary component for our SDKs to work.

Windows 8 Metro/Modern style applications operate under a different set of rules than desktop applications. One important rule being Metro applications are not allowed to access the registry. What does this mean for the DYMO SDKs? As discussed earlier, all Windows DYMO SDKs require COM to function and without registry access the loading of a COM object will fail. This means that, unfortunately, printing a label using the DYMO SDKs in a Metro application is not possible at this time. There is a workaround which requires a bit of work, but I will describe the basic process to get you started.

Workaround

After installing DLS, any time a new DYMO printer is connected to your machine it registers as a standard Windows printer. This means that you can print to your DYMO printer from any application just like you would any other printer. For instance, you could type some text in a Microsoft Word document and print it to your DYMO printer. They key to getting it to print correctly on your label is to make sure the document size you are using in Word matches the label type you have in your DYMO printer.

Following the principles described above, you could create a printable document in your application, place anything you want on this document (text, images, etc.), and print this document to your DYMO printer. The creation of the document and anything on the document is entirely your application’s responsibility since you would not be using our SDKs. What your printable document is depends on what environment you are working in. One example would be an XPS document if writing a .NET WPF application. A great example for creating and printing a document within a Metro application can be found on Diederik Krols blog. Following Diederik’s tutorial and making sure that your document size matches your label size, printing to a DYMO printer from within a Metro application should be fairly straightforward, albeit not as easy as using a native SDK.

Conclusion

Over the past several months, we have received many questions regarding DYMO SDKs and Windows 8 support. We have taken note of this and are currently researching ways to improve our SDKs and provide support for as many platforms as possible. For the time being, we hope that the workaround described above will provide those of you writing Metro applications with a viable method of integrating DYMO printers into your applications.

 

  14 Responses to “DYMO SDKs and Windows 8”

  1. Hi,
    I’ve been working with the label framework, and came to a problem in windows 8. The label, generated in the script, doesn’t print correctly. This only happens in windows 8, in later versions i have no problem. If i use the software provided, i have no problem either.
    It seems, that in windows 8, it tries to print 90┬║ degrees different than in windows 7 (for example)… And the font doesn’t seem the same one. I check and i have the same installed (arial). It might be because it is horizontaly compressed…
    How can i get it to print correctly in windows 8 using the framework?
    Thanks

    • Pedro,

      Could you provide a sample from your code? Also, could you try printing your label through DLS (DYMO Label Software) and see if you have the same problem?

  2. Dymo javascript SDK method dymo.label.framework.getPrinters() is not working properly in FF 22.0. It works fine in the latest Chrome and IE10. getLabelWriterPrinters() does not work either. Just giving you a heads up.

    Debugging inside of FF, I get this:

    [23:01:30.277] dymo.label.framework.getLabelWriterPrinters()
    [23:01:30.279] []
    [23:01:38.421] dymo.label.framework.getPrinters()
    [23:01:38.423] []

  3. I’m struggling to find any detailed documentation on how the javascript API works.
    I’ve found the examples quite helpful but I’m struggling to to get my print out to fit the entire label.
    For example, where can I find documentation on:

    I’ve gone through about 100 labels trying to get this to work!

  4. Are you aware of significant API issues on Windows 8.1? We are hearing numerous reports of labels printing at about 1/10th their normal size. Our templates and code have not changed at all.

    • We’ve the same problem on windows 8.1.

      All labels printed with the Javascript framework and Windows 8.1 are just REALLY to small.

      Any updates?

      • Bart,

        This issue occurs when the print quality is changed to high resolution. This can be done either in the driver settings configurable through windows or when there is a barcode placed on your label. DLS automatically switches to high resolution mode when a barcode is on the label. We have opened a bug with Microsoft as this is an issue with a Windows API we use in DLS. Microsoft has confirmed that this is a bug and is working on a fix/workaround for us. We will keep everyone updated

  5. Printing directly to the printer, according to your LabelWriter┬« 450 Series Printers Technical Reference Manual – I should give me 600×300 printing but all it does is print a backwards arrow and an I.
    Can you please tell me what the problem is?

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)