使用thinkbot高电压从静态托管页面生成PDF的宝石/方法

时间:2012-05-13 18:04:28

标签: ruby-on-rails-3 rubygems pdf-generation ruby-on-rails-plugins

我有一组静态帮助页面,我在使用Whilebots高压gem的Rails 3.2应用程序中提供服务。我只是以“香草”的方式使用它,而不通过控制器提供html页面。

背景

我最初尝试自己调整Michael Hartl的静态页面教程 - 即我有一组带有自己控制器的静态页面,我试图在静态页面视图下创建一个子目录,但是不能让我的路由工作,所以谷歌搜索透露了尽管的高压宝石。

吸入

我想要的是建议使用Thoughtbots高压宝石生成PDF文件最好的宝石或方法。

有人这样做过吗?

我希望能够在heroku上主持这个,所以如果有任何gotacha's我想知道这些事情。

我目前的实现是一个基本的Rails 3.2应用程序,它安装了High-Voltage gem,并在pages子目录下有许多视图。

  • 页/帮助/用户
  • 页/帮助/产品
  • 页/帮助/订单

我的html页面中有图像,不确定这是否会导致并发症。

编辑: 根据提供的答案添加了控制器,因为在Rails 3.2.3上仍然存在wicked_pdf问题,狮子会上的ruby 1.9.3-p125

class PagesController < HighVoltage::PagesController
def show
  respond_to do |format|
    format.html do
      super
    end
    format.pdf do
      #render :pdf => "pdf_file" # wicked_pdf syntax here
      render :pdf => :id,
             :layout => 'application',
             #:template => 'help/products/product_tolerance.html.erb',
             :template => 'pages/#{:id}.html.erb',
             :show_as_html => params[:debug],
             :footer => {
                :left => "Generated on @now",
                :centre => "Centre",
                :right => "Page # of page(s)"
             }        
      end
    end
  end
end

路由文件包含:

match "/pages/*id" => 'pages#show', :as => :page, :via => :get, :format => false

:格式应该是真的吗?在控制器和高电压?

1 个答案:

答案 0 :(得分:0)

如下所述覆盖高压页面控制器: https://github.com/thoughtbot/high_voltage#override

然后安装pdfkitwicked_pdf(html到pdf转换器) 并将它们挂钩到该控制器中以创建PDF版本:

class PagesController < HighVoltage::PagesController
  def show
    respond_to do |format|
      format.html do
        super
      end
      format.pdf do
        render :pdf => "pdf_file" # wicked_pdf syntax here
      end
    end
  end
end