虾 - 将图像放在每个页面的页脚中

  • 本文关键字:图像 ruby prawn
  • 更新时间 :
  • 英文 :


我有一个图像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

可能有更好的选择,但我以前从未使用过虾。

最新更新