2

我有一张图片image.jpg,我想把它放在每页左下角的页脚中。我目前正在这样做,使用 Ruby 1.9.3 和 prawn gem 创建 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 }

这将按照我想要的方式在每一页上动态放置文本;但是,它不适用于图像。

如何在文档中每一页的左下角放置图像?

4

2 回答 2

5

为什么不使用repeat

repeat(:all) do
 image "image.jpg", :at => [pdf.bounds.right - 100, 0], :align => :right
end

您可以在虾手册(第 98 页)中找到更多信息。

于 2015-06-04T15:30:36.457 回答
2

这里到底有什么问题?

这对我来说很好:

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

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

于 2013-10-17T21:13:00.037 回答