Here is my code for printing multiple labels. I have added comments for your help. Please go through this, and if in doubt, ask me. I cannot include my HTML for your reference here.
//---------------------------------------------------------------------------- // // PrintMultipleLabel.js 2014-11-07 : Vineesh KS // // Content ------------------------------------------------------------------- // // DYMO Label Framework JavaScript Library : // Print Single or multiple label // Mark-up Added // //---------------------------------------------------------------------------- // // Copyright (c), 2010, Sanford, LP 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); } }
Vineesh kalarickal
source share