DYMO Label Software v.8 has a lot of compelling features from a developer’s point of view. One important change is the new label file format.
In most cases knowing the file format is not necessary because DYMO Label Software (DLS) can be used to design a label visually. However, there are advanced scenarios where knowing the file format can benefit applications that use the DYMO Label SDK. Some of these advanced scenarios are:
- Using features not available through the DYMO Label Software UI
- Using features not available through the DYMO Label SDK
- Generating label files on the fly
- Creating label files for custom labels
In a series of blog posts we will describe the internals of label file format.
In DYMO Label v.8 we made several improvements to make using label files easier:
- The label file format is cross-platform; both Windows and Mac versions of DYMO Label Software use the same file format and shared the same built-in layouts. Because file format is the same it is easier to create applications target different platform, e.g. web-based applications.
- The label file format is XML-based. So the content of a label can be examined by just looking at the label’s XML or by using any XML tool. Also, this allows using any XML API to manipulate label content directly in case the corresponding functionality is unavailable in the DYMO Label SDK or direct manipulation is more convenient in this particular case.
- The label file format is the same for die-cut labels such as Address or Shipping and for tape/continuous labels such as 12-mm or 19-mm tapes. Strictly speaking the format is not the same but both formats shared some common parts, so it is still easier to use.
So, let look at a sample label that in DYMO Label Software looks like

01 xml version="1.0" encoding="utf-8"?> 02 <DieCutLabel Version="8.0" Units="twips"> 03 <PaperOrientation>Landscape</PaperOrientation> 04 <Id>Address</Id> 05 <PaperName>30252 Address</PaperName> 06 <DrawCommands> 07 <RoundRectangle X="0" Y="0" Width="1581" Height="5040" Rx="270" Ry="270" /> 08 </DrawCommands> 09 <ObjectInfo> 10 <TextObject> 11 <Name>Text</Name> 12 <ForeColor Alpha="255" Red="0" Green="0" Blue="0" /> 13 <BackColor Alpha="0" Red="255" Green="255" Blue="255" /> 14 <LinkedObjectName></LinkedObjectName> 15 <Rotation>Rotation0</Rotation> 16 <IsMirrored>False</IsMirrored> 17 <IsVariable>True</IsVariable> 18 <HorizontalAlignment>Center</HorizontalAlignment> 19 <VerticalAlignment>Middle</VerticalAlignment> 20 <TextFitMode>ShrinkToFit</TextFitMode> 21 <UseFullFontHeight>True</UseFullFontHeight> 22 <Verticalized>False</Verticalized> 23 <StyledText> 24 <Element> 25 <String>Click here to enter text</String> 26 <Attributes> 27 <Font Family="Arial" Size="20" Bold="False" Italic="False" Underline="False" Strikeout="False" /> 28 <ForeColor Alpha="255" Red="0" Green="0" Blue="0" /> 29 </Attributes> 30 </Element> 31 </StyledText> 32 </TextObject> 33 <Bounds X="331" Y="150" Width="4560" Height="1343" /> 34 </ObjectInfo> 35 </DieCutLabel>
02 <DieCutLabel Version="8.0" Units="twips">
Line #2 specifies label type as well as version and measurement units. The label type is DieCutLabel, one of two label types currently supported by DYMO Label. DieCutLabel as well as other label type ContinuousLabel will be described with details in a separate blog post. Version=”8.0″ specifies file format version. This version is independent from the version of DYMO Label Software. Currently the only valid version for label file is “8.0” for all versions of DYMO Label Software v.8 up to the latest version, 8.2.1.913. Units=”twips” specifies measurement units used in the file for values like object position or border width. The only supported units for now are “twips” where 1 ‘twip’ is 1/1440 of inch. Other units might be added in future version of DYMO Label. “Twips” are used basically because of “historical” reasons; previous versions of DYMO Label Software used this unit.
03 <PaperOrientation>Landscape</PaperOrientation> 05 <PaperName>30252 Address</PaperName>
Lines #3, #5 specify paper to use to print the label. In this case it is “30352 Address” paper in Landscape orientation. Paper name should be a paper defined by printer driver.
04 <Id>Address</Id>
Line #4 specifies a label ID – a unique identifier for a label type. Basically this ID is used by DYMO Label Software to lookup additional business-related information about the label like available packaging, buy links, etc. It is OK to have ID to be set to empty string if the label is not going to be used from DYMO Label Software.
06 <DrawCommands> 07 <RoundRectangle X="0" Y="0" Width="1581" Height="5040" Rx="270" Ry="270" /> 08 </DrawCommands>
Lines ##6-8 specify commands used to draw label’s shape, in this case a rounded rectangle. Again, if a label is created on the fly and intended to be printed only, the commands can be omitted.
Lines ## 9-34 specify position and properties for the only text object on the label. More information about objects will be provided in following posts.
The complete xml schema for the label file format is available on http://www.labelwriter.com/software/dls/sdk/LabelFile.xsd

One More. The method: DymoAddIn.Show; is not executing the label editor.
Suggestions?
Comment by Bret — December 14, 2010 @ 10:36 pm |
Show, Hide, and Quit are deprecated now.
Comment by Vladimir — December 15, 2010 @ 2:38 am |
O.K. Thank you.
Comment by Bret — December 15, 2010 @ 3:13 am |
Thats the solution. Thank you very much.
Comment by Bret — December 14, 2010 @ 5:43 am |
A Sample for Delphi would be great. There was a TLB file released for the earlier SDK, and samples… but nothing for v8?
Comment by Bret — December 14, 2010 @ 2:55 am |
You can use old SDK samples, they should work as is. As for the TLB – you can either use the old one, or extract type information from DLS8BackwardCompatibilityCOMLib.dll directly (it is installed in the DYMO Label software installation folder)
Comment by Vladimir — December 14, 2010 @ 4:50 am |
Been on this a good part of the day, with no luck. Samples will NOT accept a .label file. I’ve tried multiple solutions including re-generating TLB files, no luck.
Here is what happens, I can take a lwl file and open it with v8 software, it converts internally to a .label file (see title bar) and when I attempt a ‘SaveAs’, the only option is .label.
The label will not load with a DL.Open (odLabelFile.FileName)
I’m stuck and ready to throw in the towel… any help?
Comment by Bret — December 14, 2010 @ 4:59 am |
make sure you have DYMO Label 8.2.2.996 installed
Comment by Vladimir — December 14, 2010 @ 5:10 am |
Hi,
I’ve got the same problem… I installed version 8.3 but I can’t save as lwl.
What’s the solution?
thx
Comment by Ludo — September 5, 2011 @ 5:12 pm |
DLS8 uses xml-based .label file format. If you want to use old binary-based .lwl format, you have to use DLS 7.8
Comment by Vladimir — September 5, 2011 @ 11:56 pm |
What reference do I need to set to get your sample code to work in vb.net?
Framework SDK (sample written in VB.NET)
Private Label As DYMO.Label.Framework.ILabel
Label = DYMO.Label.Framework.Framework.Open(“c:\Documents and Settings\All
Users\Documents\DYMO Label\Label Files\TestLabel.label”)
Label.SetObjectText(“TEXT1″, “Testing, testing”)
Label.Print(“DYMO LabelWriter 450 Turbo”)
Comment by Pete — September 27, 2010 @ 10:11 pm |