Javascript Dymo web打印java.html
我使用的是dymo打印机,这是他们提供的用于启用web打印的代码。 我已经编辑它有3个文本框,所以我可以一次打印3个标签。我的问题是:当我按下打印按钮时,它只打印第一个文本框 我需要的是打印所有3个测试框。另外,如果代码可以编辑,如果其中一个框留空,脚本将跳过该框,只打印其中包含文本的文本框Javascript Dymo web打印java.html,javascript,dymo,Javascript,Dymo,我使用的是dymo打印机,这是他们提供的用于启用web打印的代码。 我已经编辑它有3个文本框,所以我可以一次打印3个标签。我的问题是:当我按下打印按钮时,它只打印第一个文本框 我需要的是打印所有3个测试框。另外,如果代码可以编辑,如果其中一个框留空,脚本将跳过该框,只打印其中包含文本的文本框 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtm
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Print a Label</title>
<script src = "http://labelwriter.com/software/dls/sdk/js/DYMO.Label.Framework.latest.js" type="text/javascript" charset="UTF-8"> </script>
<script src = "PrintLabel.js" type="text/javascript" charset="UTF-8"> </script>
</head>
<body>
<h1>DYMO Label Framework JavaScript Library Samples: Print Label test 2</h1>
<table>
<tr>
<td><p>
<div id="textDiv">
<label for="textTextArea">Label text:</label><br/>
<textarea name="textTextArea" id="textTextArea" rows='5' cols='40'></textarea>
</div>
</p></td>
<td><p>
<div id="textDiv">
<label for="textTextArea">Label text:</label><br/>
<textarea name="textTextArea" id="textTextArea" rows='5' cols='40'></textarea>
</div>
</p></td>
<td><p>
<div id="textDiv">
<label for="textTextArea">Label text:</label><br/>
<textarea name="textTextArea" id="textTextArea" rows='5' cols='40'></textarea>
</div>
</p></td>
</tr>
</table>
<div id="printDiv">
<button id="printButton">Print</button>
</div>
</body>
</html>
打印标签
DYMO标签框架JavaScript库示例:打印标签测试2
标签文本:
标签文本:
标签文本:
印刷品
抱歉,这是printable.js
//----------------------------------------------------------------------------
//
// $Id: PreviewAndPrintLabel.js 11419 2010-04-07 21:18:22Z vbuzuev $
//
// Project -------------------------------------------------------------------
//
// DYMO Label Framework
//
// Content -------------------------------------------------------------------
//
// DYMO Label Framework JavaScript Library Samples: Print label
//
//----------------------------------------------------------------------------
//
// Copyright (c), 2010, Sanford, L.P. All Rights Reserved.
//
//----------------------------------------------------------------------------
(function()
{
// called when the document completly loaded
function onload()
{
var textTextArea = document.getElementById('textTextArea');
var printButton = document.getElementById('printButton');
// prints the label
printButton.onclick = function()
{
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>Left</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);
// set label text
label.setObjectText("Text", textTextArea.value);
// select printer to print on
// for simplicity sake just use the first LabelWriter printer
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";
// finally print the label
label.print(printerName);
}
catch(e)
{
alert(e.message || e);
}
}
};
// register onload event
if (window.addEventListener)
window.addEventListener("load", onload, false);
else if (window.attachEvent)
window.attachEvent("onload", onload);
else
window.onload = onload;
} ());
//----------------------------------------------------------------------------
//
//$Id:PreviewAndPrintLabel.js 11419 2010-04-07 21:18:22Z vbuzuev$
//
//计划-------------------------------------------------------------------
//
//动态标签框架
//
//内容-------------------------------------------------------------------
//
//DYMO标签框架JavaScript库示例:打印标签
//
//----------------------------------------------------------------------------
//
//版权所有(c),2010年,Sanford,L.P.保留所有权利。
//
//----------------------------------------------------------------------------
(功能()
{
//当文档完全加载时调用
函数onload()
{
var textarea=document.getElementById('textarea');
var printButton=document.getElementById('printButton');
//打印标签
printButton.onclick=函数()
{
尝试
{
//开放标签
var-labelXml=\
\
景观\
地址\
30252地址\
\
\
\
正文\
\
\
\
旋转0\
假的\
真的\
左\
中间的\
收缩\
真的\
假的\
\
\
\
\
';
var label=dymo.label.framework.openLabelXml(labelXml);
//设置标签文本
label.setObjectText(“Text”,textTextArea.value);
//选择要打印的打印机
//为了简单起见,只需使用第一台LabelWriter打印机
var printers=dymo.label.framework.getPrinters();
if(printers.length==0)
抛出“未安装DYMO打印机。安装DYMO打印机。”;
var printerName=“”;
对于(变量i=0;i
您需要按照以下几行创建一些javascript函数
var process_labels = function(label_DOM_element){
var textTextArea = label_DOM_element.getElementById('textTextArea');
print_label(textTextArea);
}
然后,您需要将标签JS更改为一个函数,该函数不是在body-load上加载的。。您还需要允许传入参数
所以不是
//打印标签
printButton.onclick=function()
将此功能更改为与以下功能类似的功能:
var print_label = function(textTextArea){
{
// 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>Left</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>';
ETC ETC...
}
var print\u label=函数(textarea){
{
//开放标签
var-labelXml=\
\
景观\
地址\
30252地址\
\
\
\
正文\
\
\
\
旋转0\
假的\
真的\
左\
中间的\
收缩\
真的\
假的\
\
\
\
\
';
等等等等。。。
}
我不会为您写出全部内容,但基本上,您将拥有一个按钮单击功能,该功能将检查“textDiv”的所有元素,并将每个元素传递到过程标签
功能中
这涉及到一些工作,但您的javascrtipt当前只需要1个元素,因此您需要从中创建一个可根据需要调用的函数。这是我打印多个标签的代码。我添加了一些注释供您帮助。请检查一下,如果您有任何疑问,请询问我。我无法将我的HTML包含在您的文档中参考这里
//----------------------------------------------------------------------------
//
// 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);
}
}
//----------------------------------------------------------------------------
//
//PrintMultipleLabel.js 2014-11-07:Vinesh K S
//
//内容-------------------------------------------------------------------
//
//DYMO标签框架JavaScript库:
//打印单个或多个标签
//加成
//
//----------------------------------------------------------------------------
//
//版权所有(c),2010年,Sanford,L.P.保留所有权利。
//
//----------------------------------------------------------------------------
函数escapeXml(xmlStr)
{
var结果=xmlStr;
var findReplace=[/&/g,“&;”],[///g,“],[/“/g,”]