使用什么 gem/方法 从使用 thoughtbot 高压的静态托管页面生成 PDF



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

背景

我最初试图自己改编 Michael Hartl 的静态页面教程 - 即我有一组带有自己的控制器的静态页面,我试图在静态页面视图下创建一个子目录,但无法让我的路由工作,所以谷歌搜索显示 Thoughbots 高压宝石。

愿望

我想要的是建议哪种 gem 或方法最适合使用 Thoughtbots 高压 gem 生成 PDF 文件。

有人这样做过吗?

我希望能够在 heroku 上托管这个,所以如果有任何gotacha's我想提前了解这些。

我目前的实现是一个基本的 Rails 3.2 应用程序,安装了高压 gem 和 pages 子目录下的许多视图。

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

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

编辑: 根据提供的答案添加了控制器,因为Rails 3.2.3,Lion上的Ruby 1.9.3-p125仍然存在wicked_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
      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

:格式应该为真吗?在控制器和high_voltage

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

然后安装 pdfkit 或 wicked_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

最新更新