Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Dymo web打印java.html_Javascript_Dymo - Fatal编程技术网

Javascript Dymo web打印java.html

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

我使用的是dymo打印机,这是他们提供的用于启用web打印的代码。 我已经编辑它有3个文本框,所以我可以一次打印3个标签。我的问题是:当我按下打印按钮时,它只打印第一个文本框

我需要的是打印所有3个测试框。另外,如果代码可以编辑,如果其中一个框留空,脚本将跳过该框,只打印其中包含文本的文本框

<!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, "&amp;"], [/</g, "&lt;"], [/>/g, "&gt;"], [/"/g, "&quot;"]];

        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,”]