2013-03-09 92 views
2

我试图从一个目录中生成一个使用虾的一堆图像的PDF。我迄今为止的代码完美地工作,只有一个小问题,它在PDF的开头插入一个空白页。由于我不一定知道图像的大小(除了它们大约相同,在任何一个维度上都是+/- 50像素),我使用RMagick来获取目录中图像的最大尺寸所以我可以将它们放在每页都有一点余量的位置。虾从图像生成PDF时生成空白页

这里的剥离下来,只是必要步骤的代码重现行为:

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 

这是第一次我以前真的做什么用虾所以有可能是一些简单的我失踪。

如果有关系;我正在使用Ruby 1.9.3-p327和Prawn 0.12.0。

回答

0

看来,无论是造成这个问题已得到解决。使用与上述1.1.0版相同的代码不会在其他页面之前生成空白页面。