Rails 5 Barby gem不会打印带有条形码html_outputter的网页

时间:2016-09-16 15:30:42

标签: barcode ruby-on-rails-5 barcode-printing

我在使用Barby gem时遇到了一些问题。当我尝试打印网页时会发生这种情况。条形码显示在页面上,但如果我尝试打印,则不在打印预览中。我正在使用液体过滤器,因此,只有当我使用{{code |条形码}}

enter image description here

enter image description here

require 'barby'
require 'barby/barcode/code_25_interleaved' 
require 'barby/outputter/html_outputter'

module BarcodeFilter
 STYLE = 
   "<style>
     table.barby-barcode { 
       border-spacing: 0;
       border-collapse: collapse;
       width: 600px; 
     }
     tr.barby-row {}
     td.barby-cell { 
      height: 80px;
      padding: 1px;
     }
    td.barby-cell.on { 
      background: #000;
    }
   </style>"

  def barcode(input)
    begin
      barcode = Barby::Code25Interleaved.new(input)
      return STYLE + barcode.to_html
    rescue ArgumentError
      ''
    end
  end

end

Liquid::Template.register_filter(BarcodeFilter)

1 个答案:

答案 0 :(得分:0)

我知道这已经很晚了,但我有一段时间遇到同样的问题,我不妨分享一下对我有用的东西。 我转而使用JSBarcode。只需像在rails应用程序上的任何javascript文件一样安装它,然后像下面的示例中那样调用它:

根据“item.reference_number”的值生成条形码的Javascript:

import numpy as np
import matplotlib.pyplot as plt
import codecs

filecp = codecs.open('carstopping.txt', encoding ='utf-16-le')
file_data = np.loadtxt(filecp, usecols=(0,1),skiprows=1)
print(file_data)
x = file_data[:,0]
print(x)

y = file_data[:,1]
print(y)

在此处输出条形码:

<script>
$(document).on('turbolinks:load', function() {
  JsBarcode("#barcode", "<%= @item.reference_number %>", {
    format: "CODE128",
  }); 
})
</script>

当您打印网页时,将显示生成的条形码。