2013-04-03 16 views
7

Ich möchte nur die APIs von Drucker von einer Webseite aufrufen. und einfach ein paar Sachen darin drucken wollen. Das habe ich bisher gemacht.Wie kann man in DymoLabel Drucker mit Javascript drucken?

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

Aber hier wird nichts passieren, muss ich etwas importieren oder einbeziehen.? Bitte geben Sie einen Vorschlag ..

+0

, wenn ich Ihren Code ausführen es zeigt mir Uncaught Reference: DYMO nicht sample_dymo.html definiert: 40 GetDYMOPrinters sample_dymo.html: 40 Onclick – newBike

Antwort

6

Ihre <script> -Tag zum Einbetten der "DYMO.Label.Framework.latest.js" ist in einem anderen Skript-Tag. Verschieben Sie es und Ihre Funktionen sollten ausgeführt werden:

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

Dank habe ich die Funktionalitäten zu arbeiten ... Sie wissen, wie man den Drucker anruft, um einige Texte oder Etiketten zu drucken. Ich habe alle Dymo-Sachen installiert. –

+1

Ich suchte ein wenig und fand dieses Beispiel Seite: http://labelwriter.com/software/dls/sdk/samples/js/PreviewAndPrintLabel/PreviewAndPrintLabel.html Betrachten Sie die PreviewAndPrintLabel.js, im Grunde lädt es eine Label-XML-Sets der Adresstext und druckt es. – robbi5

+0

Vielen Dank, ich werde das durchmachen. –

2

Hier ist mein Code zum Drucken mehrerer Label. Ich habe Kommentare für Ihre Hilfe hinzugefügt. Bitte gehen Sie das durch und wenn Sie irgendwelche Zweifel haben, fragen Sie mich. Ich kann meinen HTML-Code hier nicht als Referenz angeben.

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

können Sie mir sagen, wie Sie einen Barcode zu den oben genannten hinzufügen? –

+0

überprüfen Sie bitte diese URL: http://developers.dymo.com/2010/07/21/how-to-set-data-on-your-label-using-the-sdk/ –

+0

Ich setze eine XML-Vorlage auf drucke mein Dymo Label. Es ist ein Barcode drucken, dass die Adresse ist, denke ich. Wie setze ich es einen bestimmten Wert drucken, wie eine ID, die ich an die Druckfunktion übergeben kann? –