从图像生成PDF时,Prawn会生成空白页

时间:2013-03-09 09:48:05

标签: ruby pdf pdf-generation prawn

我正在尝试使用Prawn从包含大量图像的目录生成PDF。到目前为止我的代码完美无缺,只有一个小问题,它在PDF的开头插入一个空白页。

由于我不一定知道图像的大小(除了它们大致相同,两个维度都是+/- 50像素)我正在使用RMagick来获取目录中图像的最大尺寸所以我可以将它们放在每页的中心位置。

这里的代码被简化为重现行为的必要步骤:

require 'rmagick'
require 'prawn'

# Page files always have a name in the form of 'page_#.jpg'
pages = Dir.glob('*.jpg').sort_by { |file| file.split('_')[1].to_i }

# There's probably a better way to do this part, but the naive way works just fine, so whatever...
widths = Array.new

heights = Array.new

pages.each do |page|
  image = Magick::Image::read(page).first

  widths << image.columns

  heights << image.rows
end

Prawn::Document.generate('test.pdf', :page_size => [widths.max + 36, heights.max + 36]) do |pdf|
  pages.each do |page|
    pdf.image page, :position => :center, :vposition => :center
  end
end

这是我第一次真的和Prawn做过任何事情,所以我可能会缺少一些简单的东西。

如果重要;我正在使用Ruby 1.9.3-p327和Prawn 0.12.0。

1 个答案:

答案 0 :(得分:0)

似乎导致此问题的原因已得到修复。使用与上面相同的代码与Prawn 1.1.0不会在其他页面之前生成空白页。