a4纸标签自定义打印排版


class PrintBase
# 默认现在只有a4纸大小
PaperType = {1=>[210,297]}
# 标签尺寸
TagType = {0=>[100,40],1=>[60,40],2=>[150,60]}

attr_accessor :id,:tag_type_x,:tag_type_y,:print_size,:print_x_size,:print_y_size,:print_page

def initialize(tag_type=0, obj_size=nil , paper_type=1)
@paper_type_x = PaperType[paper_type][0]
@paper_type_y = PaperType[paper_type][1]
@tag_type_x = TagType[tag_type][0]
@tag_type_y = TagType[tag_type][1]
@id = tag_type

# 纸张可用面积
@paper_type_area = @paper_type_x * @paper_type_y
# 标签面积
@tag_type_area = @tag_type_x * @tag_type_y
# 每行打印张数
@print_x_size = @paper_type_x / @tag_type_x
# 每列打印张数
@print_y_size = @paper_type_y / @tag_type_y

# 每页纸打印标签张数
@print_size = @paper_type_area / @tag_type_area
@print_size = @print_x_size * @print_y_size < @print_size ? @print_x_size *
@print_y_size : @print_size
# 需打印纸张数
@print_page = obj_size ? ( obj_size / @print_size + (obj_size % @print_size == 0 ? 0 : 1) ) : 1
end

end



class Admin::Print::WhmallTagsController < Admin::BaseController
layout:false
def print
@tag = PrintBase.new(params[:tag_id].to_i)
@chemical = ::Chemical.find(params[:chemical_id]|| 25)
end
end






[align=center]



<% ([email protected]_size).each do |i|%>
<%if i == 1 %>





<% else %>

<% end %>
<% end %>









你可能感兴趣的:(RUBY)