Prawn插件在线网站显示空白pdf

时间:2010-11-12 14:48:13

标签: ruby-on-rails rubygems prawn

听起来很奇怪,在我的本地版本中使用Prawn gem生成pdf的代码工作成功,而在线版本它只显示空的pdf页面。我也尝试在我的本地版本中将环境更改为“生产”,但仍然无法重现此问题。

我用来生成pdf的代码是:

 write_attribute(:filepath, "/reports/#{self.publisher.email}/#{Time.now.to_s(:report_filename)}.#{self.format}")
  Prawn::Document.generate(RAILS_ROOT + self.filepath) do |pdf|
    titles = self.display_titles
    items = self.display_items.map do |item|
      titles.collect { |title| item[title.gsub(' ', '')].to_s }
    end
    pdf.table items, :border_style => :grid,
      :row_colors => ["FFFFFF", "DDDDDD"],
      :headers => titles, 
      :align => self.table_aligns
  end

有人可以帮忙吗?

更新1

在本地版本中运行gem list prawn给了我这个:

*** LOCAL GEMS ***

prawn (0.8.4)
prawn-core (0.8.4)
prawn-layout (0.8.4)
prawn-security (0.8.4)

在网上运行时给了我:

*** REMOTE GEMS ***

prawn (0.8.4)
prawn-blank (0.0.1)
prawn-core (0.8.4)
prawn-fast-png (0.2.3)
prawn-flexible-table (0.1.2)
prawn-format (0.2.3)
prawn-graph (0.0.4)
prawn-js (0.7.1)
prawn-layout (0.8.4)
prawn-security (0.8.4)
prawn-svg (0.9.1.10)
prawn_commander (0.1.2)
prawn_rails (0.0.4)
prawnto (0.0.3)

这根本不是任何事情的线索吗?

2 个答案:

答案 0 :(得分:0)

确保您在本地和生产中使用相同版本的praw。

gem list prawn --local

注意:如果您已在任一位置解压缩了宝石,则可能需要检查供应商目录。


更新

服务器上的日志中是否显示任何错误?

另外,请仔细检查以确保您已在本地安装的所有prawn gem已解压缩到vendor目录中。如果有任何尚未解压缩的宝石,它们将在本地工作,因为丢失的宝石将从rubygems环境加载。

我强烈建议您使用Bundler,因为这有助于避免任何依赖项解决问题。

答案 1 :(得分:0)

正如朋友所指出的,Prawn不喜欢被冻虾。使用sudo安装gem以确保其正常工作。