我正在使用PDFKit(使用wkhtmltopdf)尝试在Rails 3应用程序中将视图呈现为pdf.
PDFKit通过Errno::EPIPE (Broken pipe)指向send_data(kit.to_pdf, :filename => "generated.pdf", :type => 'application/pdf')我的控制器show动作呈现:
# Controller
def show
respond_to do |format|
format.html { render }
format.pdf do
html = render_to_string(:layout => false , :action => "show.html.haml")
kit = PDFKit.new(html)
send_data(kit.to_pdf, :filename => "invoice.pdf", :type => 'application/pdf')
return # to avoid double render call
end
end
end
# Gemfile
...
gem 'pdfkit'
gem 'wkhtmltopdf'
...
Run Code Online (Sandbox Code Playgroud)
我知道wkhtmltopdf不是这个错误的来源,因为wkhtmltopdf public/404.html tmp/404.pdf从Rails.root工作中如预期的那样.
在使用中间件失败后,我正在使用jonathanspies.com中的一个示例 …
我一直遵守以下railscast有关添加pdfkit到一个应用程序,和我有PDF文件的产生一些问题.以下是我做过的事情:
我通过自制软件包管理器下载了wkhtmltopdf
brew install wkhtmltopdf
Run Code Online (Sandbox Code Playgroud)
然后我将pdfkit gem添加到我的gemfile并运行bundle install命令.我在config/application.rb文件中添加了以下内容
require 'pdfkit'
...
config.middleware.use PDFKit::Middleware, :print_media_type => true
Run Code Online (Sandbox Code Playgroud)
然后我更改了我的应用程序布局文件以包含所有样式表类型.
如果我运行rake中间件,命令工作,我可以看到pdfkit中间件
当我尝试将pdf附加到我的路由末尾时,应用程序就会挂起,我必须通过命令行退出.如果我创建一个指向我想要制作成pdf页面的链接,它会更改所有标记,使其看起来像一个损坏的文件.(看起来你将文本文件打开到文字处理器中,反之亦然,如果有帮助,我可以提供图像)如果我尝试在样式表中进行css更改,当我使用pdf链接查看时,它们不会生效.我假设这与rails中的新资产管道有关,还有其他人遇到过这个问题吗?
pdf-generation pdfkit wkhtmltopdf ruby-on-rails-3 ruby-on-rails-3.1