2016-09-16 7 views
0

바비 보석을 사용하는 데 문제가 있습니다. 웹 페이지를 인쇄하려고 할 때 발생합니다. 바코드가 페이지에 표시되지만 인쇄하려고하면 인쇄 미리보기에 있지 않습니다. 액체 필터를 사용하고 있으므로 바코드는 뷰에서 직접 호출되지 않습니다. {{code | 바코드}}레일 5 바비 보석이 바코드가있는 웹 페이지를 인쇄하지 못합니다. 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을 사용하여 전환했습니다.

자바 스크립트 "item.reference_number"의 값에 따라 바코드 생성 :

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

을 당신이 레일 애플 리케이션에있는 모든 자바 스크립트 파일이 다음 예에서와 같이 호출하는 것처럼 그냥 설치

출력 여기보기에 바코드 :

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

,

웹 페이지를 인쇄 할 때 생성 된 바코드가 표시됩니다.

+0

문제는 이미 이전에 수정되었습니다. 하지만 여전히 도움을 주셔서 감사합니다. –