zerba打印机js调用,打印出来的文件向左偏移,怎么将文件正常打印出来

zerba打印机js调用,打印出来的文件向左偏移
 <script type="text/javascript">
    var selected_device;
    var devices = [];
    function setup()
    {
      //Get the default device from the application as a first step. Discovery takes longer to complete.
      BrowserPrint.getDefaultDevice("printer", function(device)
      {

        //Add device to list of devices and to html select element
        selected_device = device;
        devices.push(device);
        var html_select = document.getElementById("selected_device");
        var option = document.createElement("option");
        option.text = device.name;
        html_select.add(option);

        //Discover any other devices available to the application
        BrowserPrint.getLocalDevices(function(device_list){
          for(var i = 0; i < device_list.length; i++)
          {
            //Add device to list of devices and to html select element
            var device = device_list[i];
            if(!selected_device || device.uid != selected_device.uid)
            {
              devices.push(device);
              var option = document.createElement("option");
              option.text = device.name;
              option.value = device.uid;
              html_select.add(option);
            }
          }
        }, function(){alert("Error getting local devices")},"printer");

      }, function(error){
        alert(error);
      })
    }
    var readCallback = function(readData) {
      if(readData === undefined || readData === null || readData === "")
      {
        alert("No Response from Device");
      }
      else
      {
        alert(readData);
      }

    }
    var errorCallback = function(errorMessage){
      alert("Error: " + errorMessage);
    }
    function getDeviceCallback(deviceList)
    {
      alert("Devices: \n" + JSON.stringify(deviceList, null, 4))
    }

    function sendImage(imageUrl)
    {
      //window.location.href获取当前域名
      // url = window.location.href.substring(0, window.location.href.lastIndexOf("/"));
      // url = url + "/" + imageUrl+"/"+{$tpid};
      url = imageUrl;

      //selected_device用来接收要控制的设备
      selected_device.convertAndSendFile(url, undefined, errorCallback)
    }
    function onDeviceSelected(selected)
    {
      for(var i = 0; i < devices.length; ++i){
        if(selected.value == devices[i].uid)
        {
          selected_device = devices[i];
          return;
        }
      }
    }
    //window.onload加载事件在页面内容加载完成之后立即执行相应的函数
    window.onload = setup;
  </script>
</head>
<body>
<span style="padding-right:50px; font-size:200%">Zebra Browser Print Test Page</span><br/>
<span style="font-size:75%">This page must be loaded from a web server to function properly.</span><br><br>
打印机: <select id="selected_device" onchange=onDeviceSelected(this);></select> <!--  <input type="button" value="Change" onclick="changeDevice();">--> <br/><br/>
<!--<input type="button" value="发送配置标签" onclick="writeToSelectedPrinter('~wc')"><br/><br/>-->
<!--<input type="button" value="发送ZPL标签" onclick="writeToSelectedPrinter('^XA^FO200,200^A0N36,36^FDTest Label^FS^XZ')"><br/><br/>-->
<!--<input type="button" value="Get Status" onclick="writeToSelectedPrinter('~hs'); readFromSelectedPrinter()"><br/><br/>-->
<input type="button" value="打印 JPG 图片" onclick="sendImage('{$tpl}' );"><br/><br/>

遇到的现象和发生背景,请写出第一个错误信息

img

望采纳!!!点击回答右侧采纳即可!!
首先,建议你可以检查是否有任何配置设置导致图像向左偏移,例如打印机设置或打印驱动程序设置。

如果配置设置没有问题,则可能是代码中的问题。在这种情况下,你可以尝试以下解决方案:

1.检查selected_device.ActiveXsetup=("100", "40", "4", "15", "1", "2.5", "0") 这行代码是否正确。这可能导致图像向左偏移。

2.在调用selected_device.convertAndSendFile(url, undefined, errorCallback) 之前,请检查图像URL是否正确。


在这段代码中,您需要检查以下几点以确保打印出来的文件正常:

确保打印机驱动设置正确。
确保打印机纸张设置正确。
确保打印机的打印页面设置正确。
另外,在代码中有一个叫 ActiveXsetup 的方法, 但是看到这个方法在文档中没有说明,所以可能是自定义的方法, 你需要确保这个方法调用的参数是否正确.

打印机走纸正常,打印偏位可能是软件设置高度和宽度、间距以及行列数的问题。或者尺寸设置不正确,跟踪模式设置错误造成。

img

img


img

首先,您需要检查打印机的配置是否正确,确保打印机的页面边距设置正确。其次,您可以尝试使用不同的打印驱动程序或打印机驱动程序更新版本来解决问题。

如果仍然有问题,您可以尝试在 js 中调整打印文件的对齐方式,例如使用 CSS 的 "text-align" 属性来将文本对齐到正确的位置。

示例代码:

<div style="text-align:right">
   这是要打印的文本
</div>

还有更多的解决办法,可以根据实际情况进行尝试。