我正在使用本指南在heroku上集成wicked_pdf.但不知何故它似乎不起作用.我从heroku获得了日志,它说:
Processing PdfController#get_pdf to pdf (for 115.248.175.50 at 2011-02-15 23:54:44) [GET]
Parameters: {"format"=>"pdf", "action"=>"get_pdf", "id"=>"1", "controller"=>"pdf"}
***************WICKED***************
Rendering pdf/get_pdf
RuntimeError (PDF could not be generated!
/usr/ruby1.8.7/lib/ruby/1.8/open3.rb:73:in `exec': No such file or directory - /app/fa369291-829b-4b61-9efe-b2f0d0a0a42c/home/bin/wkhtmltopdf-amd64 - - (Errno::ENOENT)
from /usr/ruby1.8.7/lib/ruby/1.8/open3.rb:73:in `popen3'
from /usr/ruby1.8.7/lib/ruby/1.8/open3.rb:59:in `fork'
from /usr/ruby1.8.7/lib/ruby/1.8/open3.rb:59:in `popen3'
from /usr/ruby1.8.7/lib/ruby/1.8/open3.rb:57:in `fork'
from /usr/ruby1.8.7/lib/ruby/1.8/open3.rb:57:in `popen3'
from /app/fa369291-829b-4b61-9efe-b2f0d0a0a42c/home/vendor/plugins/wicked_pdf/lib/wicked_pdf.rb:22:in `pdf_from_string'
from /app/fa369291-829b-4b61-9efe-b2f0d0a0a42c/home/vendor/plugins/wicked_pdf/lib/pdf_helper.rb:28:in `make_pdf'
from /app/fa369291-829b-4b61-9efe-b2f0d0a0a42c/home/vendor/plugins/wicked_pdf/lib/pdf_helper.rb:39:in `make_and_send_pdf'
from /app/fa369291-829b-4b61-9efe-b2f0d0a0a42c/home/vendor/plugins/wicked_pdf/lib/pdf_helper.rb:13:in `render'
from /app/fa369291-829b-4b61-9efe-b2f0d0a0a42c/home/app/controllers/schedule_controller.rb:33:in `get_pdf'
Run Code Online (Sandbox Code Playgroud)
请帮忙.提前致谢.
编辑:
我在代码中做了一些更改并完成了这个错误,但仍然停留在这里
NoMethodError (undefined method empty? for #<Pathname:0x2b7112392480>)
pdf-generation ruby-on-rails heroku production-environment wicked-pdf
我一直遵守以下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
我想将网页呈现为PDF.它使用单个图像,我读过你需要提供PDFkit的绝对URL才能使用图像,所以我的代码是:
= image_tag image_url(user.avatar)
Run Code Online (Sandbox Code Playgroud)
这在以HTML格式查看时有效,并且PDFkit能够生成删除了图像的PDF.但是,在使用图像时,它会挂起,直到我杀死服务器.我怎样才能让它发挥作用?
这是杀死服务器时的完整输出:
2013-12-04 13:53:36.576 wkhtmltopdf[27410:507] CoreText performance note: Client called CTFontCreateWithName() using name "Arial" and got font with PostScript name "ArialMT". For best performance, only use PostScript names when calling this API.
2013-12-04 13:53:36.577 wkhtmltopdf[27410:507] CoreText performance note: Set a breakpoint on CTFontLogSuboptimalRequest to debug.
2013-12-04 13:53:36.582 wkhtmltopdf[27410:507] CoreText performance note: Client called CTFontCreateWithName() using name "Arial" and got font with PostScript name "ArialMT". For best performance, only use PostScript names when calling this API.
2013-12-04 …Run Code Online (Sandbox Code Playgroud) 我正在尝试按照本教程.
当我添加.pdf到我的网址时,它什么也没做.我的控制器有:
respond_to :html, :pdf.
Run Code Online (Sandbox Code Playgroud)
我的mime类型已经宣布.
我也试过这个:
respond_to do |format|
format.html
format.pdf {
html = render_to_string(:layout => false , :action => "www.google.fr")
kit = PDFKit.new(html)
send_data(kit.to_pdf, :filename => "candidats.pdf", :type => 'application/pdf')
return # to avoid double render call
}
end
Run Code Online (Sandbox Code Playgroud)
但它不起作用,我不会得到错误.我的浏览器一直在等待localhost,但没有任何反应.
那么我应该如何尝试使用pdfkit?
编辑2:
根据我的rails的日志,rails成功地呈现HTML.我在.log中看到这个,rails不会将它发送到webrick或我的浏览器.我的浏览器一直在等待,等待,没有任何事情发生.我这里只有一些小照片.
编辑3:我的webrick服务器似乎无法响应其他请求,一旦他开始得到.pdf我的网址的版本,任何想法?
编辑4:
我使用rails 3.1,wkhtmltopdf 0.9.5(Windows安装程序)和pdfkit 0.5.2