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
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
Windows
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.

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.
Comment by Leif Neland — February 22, 2012 @ 8:41 pm |
DYMO provides the LabelWriter/LabelManager SDK for Linux. Please see http://sites.dymo.com/DeveloperProgram/Pages/LW_SDK_Linux.aspx.
Comment by pi — February 24, 2012 @ 2:31 am |
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?
Comment by Nick Cappello — October 21, 2011 @ 3:24 am |
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.
Comment by Vladimir — October 21, 2011 @ 3:27 am |
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?
Comment by Steve Reoch — September 17, 2011 @ 7:41 am |
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
Comment by Vladimir — September 19, 2011 @ 11:18 pm |
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
Comment by Steve Reoch — September 16, 2011 @ 9:40 am |
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.
Comment by Vladimir — September 17, 2011 @ 12:29 am |
HANDLE phP;
char *LabelQueue=”xxxx”;
int Len;
if (OpenPrinter(LabelQueue,&phP,NULL)) {
Len = DocumentProperties(NULL,phP,LabelQueue,NULL,NULL,0);
dm1 = (DEVMODE *)malloc(Len);
Status=DocumentProperties(NULL,phP,LabelQueue,dm1,NULL,DM_OUT_DEFAULT);
}
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.
Comment by CompleteGP — June 25, 2011 @ 3:01 am |
You should use DM_OUT_BUFFER instead of DM_OUT_DEFAULT as the last parameter of DocumentProperties. See DocumentProperties documentation for more info http://msdn.microsoft.com/en-us/library/dd183576%28v=vs.85%29.aspx
Comment by Vladimir — June 25, 2011 @ 4:06 am |
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 ‘Software\DYMO\LabelWriter\Directories’
#DEFINE cValName ‘Label Directory’
#DEFINE REG_SZ 0×1
#DEFINE HKEY_LOCAL_MACHINE 0×80000002
#DEFINE HKEY_CURRENT_USER 0×80000001
#DEFINE KEY_ALL_ACCESS 0x3F
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) + “\”
Comment by David — May 25, 2011 @ 5:04 am |
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
Comment by Vladimir — May 25, 2011 @ 5:27 am |
I’d love to download version 8.3 of your label printing software but the link for the download is broken. :(
Comment by Amy Bearden — May 11, 2011 @ 9:28 pm |
Just tried both links and they work fine…
Comment by Vladimir — May 12, 2011 @ 12:47 am |
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.
Thanks!
Comment by Greg O'Drobinak — May 10, 2011 @ 11:58 pm |
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.
Comment by Derreck Dean — May 10, 2011 @ 5:02 am |
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
Comment by Vladimir — May 10, 2011 @ 9:31 am |
Worked great! Thanks for your help.
Comment by Derreck Dean — May 10, 2011 @ 10:55 pm |
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!
Comment by Derreck Dean — May 11, 2011 @ 3:51 am |
The ability to check a print job status has been added to DYMO Label Web SDK. Right now it is in BETA, see DYMO Label Web SDK (BETA) for more information.
Comment by Vladimir — May 11, 2011 @ 4:19 am |
I’ll play around with it later this week. If it works, and you ever find yourself in central Florida, email me and I’ll buy you a beer.
Comment by Derreck Dean — May 11, 2011 @ 4:24 am |
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!
-Greg
Comment by Greg O'Drobinak — March 31, 2011 @ 6:00 am |
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.
Comment by Vladimir — March 31, 2011 @ 6:44 am |
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 Library\Samples\High Level COM\MS Access\ATTENDEE.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 Library\Samples\High Level COM\MS Access\ATTENDEE.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. 8.2.0.0) 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)?
Thanks!
-Greg
Comment by Greg O'Drobinak — April 1, 2011 @ 8:02 am |
but it Open file for “.lwl” is ok.
Comment by tomyi — March 25, 2011 @ 5:23 pm |
Make sure you have DYMO Label v 8.3.0.1242 installed
Comment by Vladimir — March 25, 2011 @ 9:29 pm |
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;
m_FileNameEdit.GetWindowText(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();
m_FileNameEdit.SetWindowText(str);
// populate label objects
SetupLabelObject();
// setup paper tray selection
SetupLabelWriterSelection(false);
}
else
{
CString strTxt;
strTxt.Format (_T(“%s Open File Faile!”)
,strPathName
);
AfxMessageBox(strTxt);
}
}
}
Comment by tomyi — March 25, 2011 @ 5:22 pm |
soft install v8.0.
I use VC++ Program.
Type file of “*.label” is Opened false; why?
Comment by tomyi — March 25, 2011 @ 5:20 pm |
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?
Comment by Bart ten Brinke — March 7, 2011 @ 3:44 am |
Might be a bug. Could you please provide a code sample that does not work for you? Thanks.
Comment by Vladimir — March 8, 2011 @ 3:44 am |
How does error manifest itself? Is there anything related to Dymo in the System log?
Comment by Vladimir — March 8, 2011 @ 8:43 am |
Is there a way for Framework.GetPrinters() to return shared Dymo printers? Right now it just returns the local Dymo printer.
Comment by Jeff — February 23, 2011 @ 5:14 am |
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.
Comment by Vladimir — February 23, 2011 @ 6:16 am |
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?
Comment by David-Andrew — February 16, 2011 @ 12:03 am |
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.
Comment by Vladimir — February 16, 2011 @ 12:34 am |
any chance of labelmanager pc1 support in sdk vb.net
Comment by Adam — February 14, 2011 @ 10:14 pm |
It is supported by our new API DYMO Label Framework.
Comment by Vladimir — February 14, 2011 @ 11:27 pm |
[...] Announcing DYMO Label 8.3 [...]
Pingback by Announcing DYMO Label 8.2.3 SDK Beta Release « DYMO Label Inside Out — January 14, 2011 @ 3:16 am |
Will there be Delphi samples?
Comment by Trib — March 2, 2011 @ 4:06 am |
We are not planning any Delphi samples. What the the Delphi version you are using? Are you interesting in new DYMO Label Framework samples or old SDK samples?
Comment by Vladimir — March 2, 2011 @ 4:11 am |
I was hoping for the label framework examples. I’m running Delphi 2007 for now.
Comment by Trib — March 2, 2011 @ 4:24 am |
Does Delphi 2007 support .NET? If yes, it should be pretty easy to adapt/understand C# samples…
Comment by Vladimir — March 2, 2011 @ 5:16 am |