在 rails 应用程序上使用 Prawn gem 重复页脚与当前页和每页的总页数,但与当前页码重叠
Using Prawn gem on rails app repeating footer with current page and total page count on each page , but getting overlapping current page number
这是我的代码
repeat :all do
# footer
bounding_box [bounds.left, bounds.bottom + 35], :width => bounds.width do
font "Helvetica"
move_down(15)
number_pages "Page <page> of <total>",
{ :start_count_at => 1, :page_filter => :all,:at => [bounds.right - 50, 0],
:align => :right,
:size => 8}
end
end
并且当前错误结果与当前页码重叠,如 "Page 12(1 and 2 overlaps on itself) of 2" ...但最后一页结果如 "Page 2 of 2" 是正确的
解决方法是使用canvas代替repeat :all
这是可行的解决方案:
canvas do
bounding_box [bounds.left, bounds.bottom + 50], :width => bounds.width do
font "Helvetica"
move_down(15)
number_pages "Page <page> of <total>",
{ :start_count_at => 1, :page_filter => :all,:at => [bounds.right - 70, 10],
:size => 8}
move_down(8)
number_pages "This is an automatically generated certificate from BlaBla (blabla.com)", :size => 8, :align => :center,:at => [0, 0]
number_pages "Downloaded on #{Date.today.to_formatted_s(:long)} by #{@user.full_name}", :size => 8, :align => :center,:at => [0, 10]
end
end
这是我的代码
repeat :all do
# footer
bounding_box [bounds.left, bounds.bottom + 35], :width => bounds.width do
font "Helvetica"
move_down(15)
number_pages "Page <page> of <total>",
{ :start_count_at => 1, :page_filter => :all,:at => [bounds.right - 50, 0],
:align => :right,
:size => 8}
end
end
并且当前错误结果与当前页码重叠,如 "Page 12(1 and 2 overlaps on itself) of 2" ...但最后一页结果如 "Page 2 of 2" 是正确的
解决方法是使用canvas代替repeat :all
这是可行的解决方案:
canvas do
bounding_box [bounds.left, bounds.bottom + 50], :width => bounds.width do
font "Helvetica"
move_down(15)
number_pages "Page <page> of <total>",
{ :start_count_at => 1, :page_filter => :all,:at => [bounds.right - 70, 10],
:size => 8}
move_down(8)
number_pages "This is an automatically generated certificate from BlaBla (blabla.com)", :size => 8, :align => :center,:at => [0, 0]
number_pages "Downloaded on #{Date.today.to_formatted_s(:long)} by #{@user.full_name}", :size => 8, :align => :center,:at => [0, 10]
end
end