2016-09-16 88 views
0

我在使用Barby gem時遇到了一些問題。當我嘗試打印網頁時會發生這種情況。條碼顯示在頁面上,但如果我嘗試打印,則不在打印預覽中。我使用液體過濾器,因此,條形碼不會直接在視圖中調用,只有當我使用{{code |條碼}}Rails 5 Barby gem不打印帶有條形碼的網頁html_outputter

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) 

回答

0

我知道這是真的晚了,但我有一個,而同樣的問題,我也可以分享給我工作。 我改用JSBarcode。只要安裝它,你會在一個Rails應用程序的任何JavaScript文件,然後在下面的例子中這樣稱呼它:

的Javascript,其基於「item.reference_number」的價值條碼:

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

輸出上你的看法條形碼的位置:

<svg id="barcode"></svg>

當您打印網頁時,生成的條形碼將會顯示。

+0

前段時間這個問題已經解決了。但是,仍然感謝你的幫助。 –