我正在使用Barby生成条形码,并将其添加到使用Prawn生成的PDF中。条形码的长度可以变化,因此我希望能够缩小其宽度以确保其适合PDF。
我可以通过在xdim: <scale factor>
选项中添加annotate_pdf
来缩小条形码的宽度。但是,我不知道如何判断条形码是否会超出PDF页面的大小,以及如何使用比例因子。
app / pdfs / item_pdf.rb
require 'barby'
require 'barby/barcode/code_128'
require 'barby/outputter/prawn_outputter'
class ItemPdf < Prawn::Document
def initialize(item)
super(page_size: [79.2, 254.88],
margin: 9,
page_layout: :landscape)
@item = item
font_size 16
job_name
item_number
barcode
end
def job_name
text_box "Job: #{@item.job.name}",
height: 20,
at: [0, 60],
overflow: :shrink_to_fit
end
def item_number
text_box "Item: \##{@item.number}",
height: 20,
at: [0, 40],
overflow: :shrink_to_fit
end
def barcode
barcode = Barby::Code128.new @item.number
barcode.annotate_pdf(self, height: 25)
end
end
答案 0 :(得分:0)
好吧;出于相同的原因,height选项对于二维条形码无效 该宽度不适用于任何条形码:无法 将这些尺寸标注在结果上而不破坏它。
来源:https://github.com/toretore/barby/issues/30。您可以找到source code from here。
所以您可以选择的一种方法是将条形码保存为png图像文件,然后可以使用对虾调整其大小以适合pdf宽度。