2013-04-03 15 views
7

Chcę tylko wywołać interfejs API drukarki ze strony internetowej. i po prostu chcę wydrukować pewne rzeczy. Zrobiłem to do tej pory.Jak wydrukować w drukarce DymoLabel za pomocą javascript?

<!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> 


      <script src="http://labelwriter.com/software/dls/sdk/js/DYMO.Label.Framework.latest.js" 
      type="text/javascript" charset="UTF-8"> 


      function OnLoad() 
      { 
       //GetCurrentPlugin(); 
       GetDYMOPrinters(); 

       //GetPaperTray(); 
       //GetMRUList(); 
       //GetObjectNames(); 
       //GetLabelImage(); 
      } 


      function GetDYMOPrinters() 
      { 
       alert(" Testing 1"); 

       var printers = dymo.label.framework.getPrinters(); 
       if (printers.length == 0) 
       throw "No DYMO printers are installed. Install DYMO printers."; 
       alert("dfdsfd"); 
       var printerName = ""; 
       for (var i = 0; i < printers.length; ++i) 
       { 
        var printer = printers[i]; 
        if (printer.printerType == "LabelWriterPrinter") 
        { 
         printerName = printer.name; 
         break; 
        } 
       } 

      var label = DYMO.Label.Framework.Label.Open("MyText.label"); 
      label.SetObjectText("NameTxt", "John Smith"); 

      alert(" Testing 2"); // Here this alert also not working . 
      label.print("DYMO LabelWriter 310"); 
      } 
    </script> 

    </head> 
    <body onload="OnLoad()"> 
     <form action="" method="post" id="DYMOLabel"> 
     <center> 
     <h2>DYMO Label Example</h2> 
     <input type=button value="Get DYMO Printers" onClick="GetDYMOPrinters()"> 
    </center> 
    </form> 




    </body> 
</html> 

Ale tutaj nic się nie stanie, Czy muszę coś importować lub dołączyć? Podaj sugestię ..

+0

kiedy uruchomić swój kod to pokazuje mi Uncaught ReferenceError: DYMO nie jest zdefiniowana sample_dymo.html: 40 GetDYMOPrinters sample_dymo.html: 40 onclick – newBike

Odpowiedz

6

Twój <script> -Tag do osadzania "DYMO.Label.Framework.latest.js" znajduje się wewnątrz innego znacznika skryptu. Przenieś to i uruchom funkcje:

<!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> 
    ... 
+0

Dzięki Mam funkcjonalności do pracy ... Czy wiesz jak połączyć się z drukarką, aby wydrukować tekst lub etykiety. Zainstalowałem wszystkie rzeczy Dymo. –

+1

Szukałem trochę i znalazłem tę próbną stronę: http://labelwriter.com/software/dls/sdk/samples/js/PreviewAndPrintLabel/PreviewAndPrintLabel.html Spójrz na PreviewAndPrintLabel.js, zasadniczo ładuje zestawy etykiet-XML tekst adresu i go wydrukuje. – robbi5

+0

Dziękuję bardzo, przejdę przez to. –

2

Oto mój Kod, aby wydrukować wiele etykiet. Dodałem komentarze do twojej pomocy. Proszę przejść przez to i Jeśli masz jakiekolwiek wątpliwości, zapytaj mnie. Nie mogę tu podać mojego kodu 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); 
      } 
    } 
+0

czy możesz mi powiedzieć, jak dodać kod kreskowy do powyższego? –

+0

proszę sprawdzić ten adres URL: http://developers.dymo.com/2010/07/21/how-to-set-data-on-your-label-using-the-sdk/ –

+0

Ustawiam szablon XML do wydrukuj moją etykietę Dymo. Wydaje mi się, że drukuje kod kreskowy, który jest adresem. Jak ustawić drukowanie określonej wartości, np. ID, który mogę przekazać do funkcji drukowania? –