【问题标题】:Barcode not printing correctly using JSBarcode library使用 JSBarcode 库无法正确打印条码
【发布时间】:2018-10-26 13:21:10
【问题描述】:

我正在尝试打印生成的条形码。我正在使用 JSBarcode 库来生成条形码。

在打印屏幕上,可视性很好,但是打印出来的结果是4页,只有一页有条码,而且条码很少,在页面底部。

我的html代码是:

<div class="col-12 col-print-12">
   <p class="barcode tekli">
      <svg id="barcode tekli"></svg>
   </p>
</div>

我的JS代码是:

JsBarcode("#barcode", "1554466", {
    width:5,
    height:200,
    fontSize:50,
    displayValue: true
});

window.print();

window.open('', '_parent', '');

window.close();

我的 CSS 是:

@media print {
    .tekli{
        -webkit-transform: scaleX(2);
        -o-transform: scaleX(2);
        -ms-transform: scaleX(2);
        transform: scaleX(2);
    }
    .page {
        width: 21cm;
        height: 29.7cm;
        margin: 0;
        border: initial;
        border-radius: initial;
        width: initial;
        min-height: initial;
        box-shadow: initial;
        background: initial;
        page-break-after: always;
    }
    .col-print-12 {
        width: 100%;
    }
}

你能帮帮我吗?

【问题讨论】:

    标签: javascript html css printing jsbarcode


    【解决方案1】:

    试试这个

    $(document).ready(function(){
        JsBarcode("#barcode", "1554466",{
            width:5,
            height:200,
            fontSize:50,
            displayValue: true
    
        });
    
        window.print();
    
        window.open('', '_parent', '');
    
        window.close();
    });
    

    或删除 svg 标签并替换为带有 id="barcode" 的简单 div

    let divDOM = document.getElementById("barcode");
    let svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
    svg.setAttribute('jsbarcode-format', 'ean13')
    svg.setAttribute('jsbarcode-value', '<?php echo $product["ean"]; ?>')
    svg.className.baseVal = "barcode";
    divDOM.appendChild(svg);
    JsBarcode("#barcode","Smallest width",{
        width: 1,
        height: 25,
        lineColor: "#676a6c"
    }).init();
    

    【讨论】:

      【解决方案2】:

      您的代码在 html/CSS 中进行了细微更改,对我来说效果很好。

      我已经从 svg 中删除了 id tekli(你不能有多个 Id)并且还从 CSS 中删除了 .tekli 样式。

      JsBarcode("#barcode", "1554466",{
          width:5,
          height:200,
          fontSize:50,
          displayValue: true
      
      });
      
      window.print();
      
      window.open('', '_parent', '');
      
      window.close();
      	  @media print {
             
              .page {
                  width: 21cm;
                  height: 29.7cm;
                  margin: 0;
                  border: initial;
                  border-radius: initial;
                  width: initial;
                  min-height: initial;
                  box-shadow: initial;
                  background: initial;
                  page-break-after: always;
                    }
                   .col-print-12 {
                  width: 100%;
                   }
                    }
      <script src="https://cdn.jsdelivr.net/jsbarcode/3.3.7/JsBarcode.all.min.js"></script>
      <div class="col-12 col-print-12">
      
                  <p class="barcode tekli">
                      <svg id="barcode"></svg>
                  </p>
      
              </div>

      你也可以测试一下here

      【讨论】:

      • .page 没有在上面的例子中使用
      猜你喜欢
      • 1970-01-01
      • 2019-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-27
      • 1970-01-01
      相关资源
      最近更新 更多