How to get to print in DymoLabel printer using javascript?
Your <script>
-Tag for embedding the "DYMO.Label.Framework.latest.js" is inside another script tag. Move it out and your functions should run:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<title>Sample DYMO Label Plug-In</title>
<!-- LabelWriter-API first -->
<script src="http://labelwriter.com/software/dls/sdk/js/DYMO.Label.Framework.latest.js"></script>
<!-- your script second -->
<script>
...
Here is my Code to print multiple label. I have added comments for your help. Please go through this and If you have any doubts ask me. I cant include my HTML for your reference here.
//----------------------------------------------------------------------------
//
// PrintMultipleLabel.js 2014-11-07 : Vineesh K S
//
// Content -------------------------------------------------------------------
//
// DYMO Label Framework JavaScript Library :
// Print Single or multiple label
// Mark-up Added
//
//----------------------------------------------------------------------------
//
// Copyright (c), 2010, Sanford, L.P. All Rights Reserved.
//
//----------------------------------------------------------------------------
function escapeXml(xmlStr)
{
var result = xmlStr;
var findReplace = [[/&/g, "&"], [/</g, "<"], [/>/g, ">"], [/"/g, """]];
for(var i = 0; i < findReplace.length; ++i)
result = result.replace(findReplace[i][0], findReplace[i][1]);
return result;
}
// call this function on onclick function of print button
function printLabel()
{
//comma separated values of record IDs
var hidn_ids_array = $('#hidn_ids').val().split(",");
// if text area is null
var labelPrint_val = $('#labelPrint').val();
if(labelPrint_val == ""){
alert("Please enter values to print label");
$( "#labelPrint" ).focus();
return;
}
try
{
// open label
var labelXml = '<?xml version="1.0" encoding="utf-8"?>\
<DieCutLabel Version="8.0" Units="twips">\
<PaperOrientation>Landscape</PaperOrientation>\
<Id>Address</Id>\
<PaperName>30252 Address</PaperName>\
<DrawCommands/>\
<ObjectInfo>\
<TextObject>\
<Name>Text</Name>\
<ForeColor Alpha="255" Red="0" Green="0" Blue="0" />\
<BackColor Alpha="0" Red="255" Green="255" Blue="255" />\
<LinkedObjectName></LinkedObjectName>\
<Rotation>Rotation0</Rotation>\
<IsMirrored>False</IsMirrored>\
<IsVariable>True</IsVariable>\
<HorizontalAlignment>Center</HorizontalAlignment>\
<VerticalAlignment>Middle</VerticalAlignment>\
<TextFitMode>ShrinkToFit</TextFitMode>\
<UseFullFontHeight>True</UseFullFontHeight>\
<Verticalized>False</Verticalized>\
<StyledText/>\
</TextObject>\
<Bounds X="332" Y="150" Width="4455" Height="1260" />\
</ObjectInfo>\
</DieCutLabel>';
var label = dymo.label.framework.openLabelXml(labelXml);
if (!label)
{
alert("Load label before printing");
return;
}
// set data using LabelSet and text markup
var labelSet = new dymo.label.framework.LabelSetBuilder();
var textMarkup = '';
var fontSize = 18; // sets font size of first line
// loop started for adding multiple record.
$.each(hidn_ids_array,function(i)
{
////get each Id
labelid = hidn_ids_array[i];
var textTextArea = document.getElementById('labelPrint'+labelid);// text area id
if(textTextArea.value !='')
{
var lines = textTextArea.value.split('\n');
// adding markup
var boldLinesCount = lines.length <= 3 ? 1 : 2;
// if no. of lines is more than 3 then apply style to first 2 lines.
if (lines.length > 0)
{
textMarkup = '<b><font family="Arial" size="' + fontSize + '">';
textMarkup += escapeXml(lines.slice(0, boldLinesCount).join('\n'));
textMarkup += '</font></b><br/>';
textMarkup += escapeXml(lines.slice(boldLinesCount).join('\n'));
}
/////////////add record to printer object////////////////
//alert(textMarkup);
var record = labelSet.addRecord();
record.setTextMarkup('Text', textMarkup); // set label text
}
});
// select printer to print on
var printers = dymo.label.framework.getPrinters();
if (printers.length == 0)
throw "No DYMO printers are installed. Install DYMO printers.";
var printerName = "";
for (var i = 0; i < printers.length; ++i)
{
var printer = printers[i];
if (printer.printerType == "LabelWriterPrinter")
{
printerName = printer.name;
break;
}
}
if (printerName == "")
throw "No LabelWriter printers found. Install LabelWriter printer";
// print the label
label.print(printerName, null, labelSet.toString());
}
catch(e)
{
alert(e.message || e);
}
}