Jan 132011

We are proud to announce the release of DYMO Label software version 8.3.

Starting with this release, the new DYMO Label Framework and DYMO Label Framework Java Script library are officially supported.

DYMO Label installers are available from the links below. SDK samples and documentation will be updated in coming weeks.

Download Links

Windows DYMO Label v.8 Installer

Mac DYMO Label v.8 Installer

What’s New

DYMO Label Framework JavaScript Library

To simplify using DYMO Label SDK from web-based application we created a JavaScript library that abstracts browser and platform details for accessing DLS SDK from JavaScript. Now you can use the same JavaScript code to add printing support for any browser the SDK supports. Currently supported browsers are:

  • On Windows: Internet Explorer 6+, Firefox 2+, Chrome 4, Opera 10, Safari
  • On Mac: Safari 4+, Firefox, Chrome, Opera

Major Features

  • Simple cross-browser and cross-platform API
  • Ability to load and print a label from: a web server, the local file system, or construct on the fly in JavaScript
  • Ability to load images from the server or from local file system
  • Ability to print multiple labels at once


64-bit Support

Now you can use the SDK from 64-bit processes, e.g. Internet Explorer 64-bit. The only thing to do is to recompile your application to be 64-bit, no need to change any code.

New DYMO Label Framework API

Starting this introduces a new API – the DYMO Label Framework. It provides a simpler streamlined interface for printing labels.

Major Features

  • Support for 32-bit and 64-bit applications.
  • Support for DYMO LabelManager Tape printers. Now you can use the same simple API to print on Tape printers as for printing on LabelWriter printers. All you need to do is to design a Tape label in DLS, load it in your application and print.
  • Native .NET support. The Framework provides native .NET support. There is no need to use COM-Interop anymore. Features available in .NET such as indexed properties, enumerators, etc are used to provide an API that is easier to use.
  • COM support. Microsoft COM is supported as well, similar to current SDK.
  • Consolidated High and Low Level API. The Framework combines the current high-level and low-level APIs into a single API. Now there is no need to switch between APIs if you need some advanced functionality not available in high-level API.

  48 Responses to “Announcing DYMO Label 8.3”

  1. any chance of labelmanager pc1 support in sdk vb.net

  2. Where can I find any documentation on the Javascript SDK?
    And is the Javascript SDK also supported by older (1 or 2 years) DYMO Labelwriters?

    • Currently the best documentation is the blog’s samples :) They cover almost all functionality of the library. The formal documentation will be released in coming weeks.

      The library supports all the printers supported by DYMO Label v.8 software, this includes all 450 models, all 400 models, and most 3xx models. Tape printers are supported as well.

  3. Is there a way for Framework.GetPrinters() to return shared Dymo printers? Right now it just returns the local Dymo printer.

    • GetPrinters() returns all the printers including shared. One note about shared printers is that they are per user, so if your applicaion is running under a different account that you usually use, that account has to have needed shared printers setup as well.

  4. I was running Safari / Snow Leopard & printing through javascript was working fine with 8.2
    After my update to 8.3 everything is completely broken.
    Do I still need to install something else to enable the javascript printing?

  5. soft install v8.0.

    I use VC++ Program.
    Type file of “*.label” is Opened false; why?

  6. code:
    void CVCSampleDlg::OnBnClickedBrowseBtn()
    // TODO: Add your control notification handler code here
    //standard open dialog
    CFileDialog od(TRUE);
    // od.m_pOFN->lpstrFilter = _T(“*.label”);

    // show the file name
    CString str;

    // use the current file name’s folder as the initial
    // directory for the open file dialog
    int i = str.ReverseFind(‘\’);
    CString path = str.Left(i);
    od.m_pOFN->lpstrInitialDir = path;

    //if user selected a file then open it
    if (od.DoModal()==IDOK)
    CString strPathName = od.GetPathName();

    BOOL bOpen = m_DymoAddIn.Open (strPathName);

    if (bOpen)
    // show the file name
    str = od.GetPathName();
    str += ‘\’;
    str += od.GetFileName();

    // populate label objects

    // setup paper tray selection
    CString strTxt;
    strTxt.Format (_T(“%s Open File Faile!”)


  7. but it Open file for “.lwl” is ok.

  8. Hi!

    I have a an MS 2007 Access program that was running under XP Pro to print labels and bar codes on a LabelWriter Duo. The VB code used a COM construct (from your SDK, downloaded > 2 yrs. ago) that looked at some registry keys to find the location of the Dymo label file directory.

    All was right with the world until I moved up to Windows 7 Ultimate 64-bit. Now my VB code chokes on not finding the registry keys to tell me where the label directory is. This construct MUST work since the Access application may be run an any number of PCs and the label file location could be different on each PC. I do not want to build a unique load for each PC, especially since our sys admin often does things without my knowledge.

    Please provide a solution to this problem that works with VB code in Access 2007 (actually, now it is the 2010 version). I am using solely the VB compiler within MS Access and I have no knowledge of any .NET programming, nor do I have any tools for such. I looked at the latest SDK docs from your website today, but there seems to be a distinct lack of info for VB folks that just do their programming in Access.

    Thanks very much for your help!


    • Your application should not rely on external dependencies you cannot control. Instead of using a registry key, you could have a field in a database to store the path to the label to print. You could provide a UI (Access Form) to set that field, e.g. using standard OpenFile dialog.

      Another way is to store the whole label in the database as a BLOB and then using OpenStream() SDK method to load label from that BLOB.

      Another alternative is to switch to new DYMO Label Framework API where all label files are stored in xml format, so you can store the label in a regular Text field as a string.

      • I agree that I shouldn’t have to rely on external dependencies,but I need to be able to use a particular .lwl file and know where to find it.

        The VB code that is now commented out in the ‘DLS7 Compatibility LibrarySamplesHigh Level COMMS AccessATTENDEE.MDB’ used to work and it enabled the app to find the diectory for that .lwl file. Obviously, this construct no longer works for Win7, so I need help to get an alternative solution rolling.

        Storing BLOBs of label files and retrieving them seems like a reasonable solution, but I need an example of how to take an .lwl file and store it as a BLOB in Access, then how to retrieve & use it (via ‘OpenStream()’ ?) according to the syntax of VB in Access. I don’t see any examples on this blog that address the syntax of using VB in Access, only some VB .NET stuff that looks fairly alien to me WRT the API calls shown. The rest I can handle according in the manner of the example in ‘DLS7 Compatibility LibrarySamplesHigh Level COMMS AccessATTENDEE.MDB’.

        As for the “new DYMO Label Framework API”, where can I find the documentation for that? The latest SDK I just downloaded two days ago form the Dymo website (ver. contained only a “DLS7 Compatibility Library Reference Manual” and some examples (outdated?), but no mention of any ver. 8 API. Does the ver. 8 stuff exist? What is the syntax for invoking the the API & using the methods within VB in Access?

        Given that my label is in XML format, how do I use that within Access VB to load the label & print it via the “new API” (example, please)?



  9. We’re developing an application that uses the Dymo Labelwriter 450 and 450 Turbo to print name tag tickets for people in organizations, which is used for event tracking. The software is currently in use by a couple of organizations and was developed in C#/Silverlight. The SL app runs out of browser with elevated permissions to print these labels, which works great.

    What I have a problem with is the list of printers that the Dymo COM app presents. If I have previously plugged in a 450 Turbo (now disconnected), but have a 450 plugged in, it says that both printers are online and ready to print to. I can’t tell how many print jobs are backed up in queue, or whether the printer is truly ready to print to. I wrote a PowerShell script that I run in SL to query device information, so I can see what WMI has to say about printer status, and it also says that all printers are online and ready, even though Printers and Devices correctly shows the Turbo grayed out. Therefore, it seems as if the DYMO SDK is looking at WMI or the spooler system to see if the printer is online, and the Dymo driver is not updating WMI with its current status.

    Please help – One organization is basically setting up laptop stations with these printers. The laptops and Labelwriters get moved around daily, and a different Labelwriter is plugged into each laptop, in a different USB port, which then creates random copies of the Labelwriter printers in Devices and Printers. I’m telling these people to keep the same printer plugged into the same USB port on the same laptop each time, but this is most definitely not a scenario we want to support once the application service is opened up to everyone who wishes to use the software. If the printer drivers updated WMI, I could query to see which ones were online, and allow choosing only online printers.

    Making matters worse is that the people who run this software are not computer-savvy at all. The software is designed with ease-of-use in mind. Because I can’t truly see only online DYMO printers, they have to guess at which ones are online every time they start the program.

    Thanks in advance for your help.

    • WMI and Spooler Win32 API report online status incorrectly. DYMO Label Framework API should report it correctly using IPrinter.IsConnected. JavaScript library also supports it, e.g. dymo.label.framework.getPrinters()[“DYMO LabelWriter 450 Turbo”].isConnected

      • Worked great! Thanks for your help.

      • I’m finding another issue. Frequently there is a paper jam in the printer, usually due to a sticker coming off in the printer. (I’m using Dymo paper, too, which is odd.) I don’t see a way to tell if there is a paper jam. Is there a way to detect this? Either a bool flag, something like Dymo.PrinterStatus(string printerName) that returns an enum flag, and/or the job queue count for that particular printer, would be handy to query. The people manning the four stations don’t always see when printers jam up (due to greeting people coming in), and if a ticket doesn’t print out for a visitor, they usually try to sign in using a different station, but they are already signed in-the ticket is sitting in the print queue, and they would have to sign out then sign in to print tickets from a different computer… not to mention all the failed tickets that print out once the jam is fixed. Maybe there’s something I’m missing? BTW, I’m using the AutomationFactory in Silverlight to create an instance of the DYMO printer “_dymo = AutomationFactory.CreateObject(“Dymo.DymoAddIn”);” via the DLS7 interface.

        Thanks again for all your help!

  10. Hi!

    Something peculiar is happening with this website. I can only see up through comment #10, dated 3/2/2011. There are supposed to be many more comments visible than that. Looks like some posts have disappeared.

    I’ve tried 3 different browsers with the same results! I am getting email notifications about the Comments section, but now I can’t access them on the web page.

    Please respond to me directly via email since I cannot read new replies now on your web page.


  11. I’d love to download version 8.3 of your label printing software but the link for the download is broken. :(

  12. We just installed a few new dymos using the v8 software.
    The API no longer SHOW’s the dymo app, printing works though.

    I installed v 8 on my machine, It also stopped showing the app after install.
    I removed prior ver software and api.

    I can oDymo.open( labelfile ) and oDymoLabel.SetField ( ‘Text’, lcTxt) where ‘Text’ is a field on the label.
    then I can oDymo.print( 1,.t.,0)
    but if I oDymo.show() it dosn’t load up the editor with my values. It return .null.
    My users like to tweek the final product but dont want to fill out all the fields.

    How do I launch the Editor now?

    Setup Code is:
    PUBLIC oDymo, oDymoLabel

    * create OLE objects to communicate with DLS
    oDymo = CreateObject(IDymoAddInName)
    oDymoLabel = CreateObject(IDymoLabelsName)

    *!* Windows API functions and constants to work with the Registry
    #DEFINE cSubKey ‘SoftwareDYMOLabelWriterDirectories’
    #DEFINE cValName ‘Label Directory’
    #DEFINE REG_SZ 0x1

    Declare Long RegOpenKey IN advapi32;
    Long hKey, String @lpSubKey, Long @phkResult

    Declare Long RegQueryValueEx IN advapi32;
    Long hKey, String lpValueName, Long lpReserved,;
    Long @lpType, String @lpData, Long @lpcbData

    Local hKey, cb, LBPath

    hKey = 0
    cb = 0
    LBPath = ”

    * Read label files path from the Registry
    RegOpenKey (HKEY_CURRENT_USER, cSubKey, @hKey)
    RegQueryValueEx (hKey, cValName, 0, REG_SZ, @LBPath, @cb)
    LBPath = Space(cb + 1)
    RegQueryValueEx (hKey, cValName, 0, REG_SZ, @LBPath, @cb)

    *!* Modified by Edhy Rijo on 07/06/1999.
    ** — Use the Form’s Property Thisform.cLabelPath to hold the path to the label file
    ** — instead of using a Public Variable.
    *!* LBPath = Left(LBPath, cb – 1) + “”
    PUBLIC gcLabelPath
    gcLabelPath = Left(LBPath, cb – 1) + “”

    • Unfortunately, the Show method is unsupported by DYMO Label v8 due to architectural changes. The possible options are:
      – users have to open and tweak the label manually using DYMO Label software, then save it back. this probably should be done only once during “first run” step. Alternatively you can programmatically start DYMO Label software and pass the label file as a command line parameter.
      – if you can control the user environment, you can uninstall DYMO Label v8 and install a patch to DLS 7.8 (DLS 7 Update) that adds support for LabelWriter 450 series printers. See http://sites.dymo.com/DeveloperProgram/Pages/LW_SDK_Windows.aspx, the direct link is http://www.dymo.com/media/Software/DLS_7_Update.zip

  13. HANDLE phP;
    char *LabelQueue=”xxxx”;
    int Len;
    if (OpenPrinter(LabelQueue,&phP,NULL)) {
    Len = DocumentProperties(NULL,phP,LabelQueue,NULL,NULL,0);
    dm1 = (DEVMODE *)malloc(Len);
    Under 32-bit Windows The first call returns 1080 and the second call succeeds filling in the DEVMODE structure. Under Windows 7 64-bit the first call returns 1080 and the second call fails returning -1 and not filling in the DEVMODE. This is version 8.3 of the driver. This has been tried on two different x64 machines. It works for all other printers in x64.

  14. Is it possible to enter a quantity of labels i wish to print when merging data from an excel database. In detail i have a generic stock label with multiple fields set up to merge data from excel but i can only print one label for a particular stock item before the merging ‘wizard’ closes and i have to start all over again.

    Please advise

    • Unfortunately, there is no way to print more then one of each record/label when using Import Data and Print wizard. The only way to save some time is to check “Save data and layout as” check box on the wizard’s last page, when reopen the layout by using File/Import Data and Print/Layout Name menu – the last page of the wizard will be opened, so you will need to print data data only, but not redoing the layout.

  15. I’ve already saved the database linking etc, but it’s still not practical to print a large quantity of stock labels as the wizard closes after each label is printed (this only happens in the latest version 8.3 software so i’d have to say version 8 was actually better! You could still only print one label but at least the wizard didn’t closw!)

    Is there any way to merge data from a databaseand be able to print more than one label? Is it possible to do this through the address book wizard or anything?

    • If you map your data into different objects on the label, e.g. TEXT object for description of item and BARCODE object for the item’s code, then unfortunately there is no way to use address book.

      If you map all your data into a one object, then you can import your database into an address-book/data-list by using AddressBook’s Import feature. See DLS help for more information

  16. I have a field called Quantity in one of my Access Databases. Is it possible to get the Access VBA command DymoAddIn.Print(1, True) to take the current quantity on the screen and add it to where the copies would go in that statement? If so, how?

    • Supposing you are printing from Access itself, just grab the value of the control/field on your Access Form and pass it as the first parameter of Print() method.

  17. Can this framework be ported to linux?
    I have the labelprinter installed with cups, but the examples sow

    isBrowserSupported: false
    isFrameworkInstalled: false
    errorDetails: The operating system is not supported.

  18. We have been using the JavaScript API for a few months now without issue. Recently, we added more functionality that makes use of the same API functions. However, some users are able to print successfully while others receive a label with the barcode replaced by the text “Invalid barcode data”. I have searched our code base, but did not find any such error. I am wondering if this is a dymo framework error message. Anybody else experience this? Any clues?

    • There are certain restrictions on what characters the barcode data can contain, how long the data is, etc. Make sure the data you are setting on the barcode is valid. What kind of barcode are you using?

      • I am fairly ignorant when it comes to barcodes. I realize there are many types, but what exactly do you mean when you say “what type”?

        Also, one user was able to print a certain barcode, while another user was not able to print that same barcode (that user received the barcode printed with the error).

    • Make sure to format your barcode data to upper case.

  19. I have a problem with printing on Windows 2008 Server. I have installed SDK 8.4.2, but when I try to print from my application (communication via high level code), I receive a message: Class Dymo.DymoAddIn is not registered.
    I am working on Administrator Account. I changed default Intenet Options to accept ActiveX object. How to register Active X or how to print in a different way on such machine? I had no problems with printing the same way on Windows 7 or Windows XP.

 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>