我有一个图像image.jpg
,我想把它放在每页左下角的页脚中。我目前正在这样做,使用 Ruby 1.9.3 和虾宝石来创建 PDF,如下所示:
start_new_page
image "image.jpg", :at => [0,30]
这有两个问题:
1)我正在动态创建页面,我需要将图像放置在所有页面上。由于我永远不知道将创建多少个页面,因此我不知道如何在每个页面上放置图像。
2) 我的 PDF 中的表格被写在徽标的顶部,导致徽标不可见。
我在示例中找到了以下代码片段:
number_pages "<page> in a total of <total>", { :start_count_at => 0, :page_filter => :all, :at => [bounds.right - 50, 0], :align => :right, :size => 14 }
这将在每个页面上放置文本,动态地按照我想要的方式;但是,它不适用于图像。
如何将图像放置在文档中每个页面的左下角?
为什么不使用重复?
repeat(:all) do
image "image.jpg", :at => [pdf.bounds.right - 100, 0], :align => :right
end
您可以在虾手册(第98页)中找到更多信息。
这里到底有什么问题?
这对我来说很好用:
require 'prawn'
Prawn::Document.generate('hello.pdf') do |pdf|
pdf.text("Hello Prawn!")
pdf.image "image.jpg", :at => [pdf.bounds.right - 100, 0], :align => :right
pdf.number_pages "<page> in a total of <total>", :start_count_at => 0, :page_filter => :all, :at => [pdf.bounds.right - 100, 0], :align => :right, :size => 14
end
要将其添加到所有页面,您可以这样做:
require 'prawn'
Prawn::Document.generate('hello.pdf') do |pdf|
pdf.text("Hello Prawn!")
pdf.start_new_page
pdf.text("Hello Prawn!")
pdf.start_new_page
pdf.text("Hello Prawn!")
pdf.page_count.times do |i|
pdf.go_to_page i
pdf.image "image.jpg", :at => [pdf.bounds.right - 100, 0], :align => :right
end
pdf.number_pages "<page> in a total of <total>", :start_count_at => 0, :page_filter => :all, :at => [pdf.bounds.right - 100, 0], :align => :right, :size => 14
end
可能有更好的选择,但我以前从未使用过虾。