无法让wicked_pdf在heroku上工作? (但它在本地工作)

问题描述:

按照关于https://github.com/jordan-brough/heroku-pdf的指导,我设法让wicked_pdf在本地工作并按预期创建PDF。 然而,一旦我推到Heroku的,经过一段时间的应用程序崩溃每次我打电话的PDF无法让wicked_pdf在heroku上工作? (但它在本地工作)

日志给了我这样的:

2011-05-19T06:36:56+00:00 app[web.1]: Started GET "/authors/cash_payment_receipt/4dd4aff0a2d5a5000100000c.pdf" for XXX.XXX.XXX.XXX at Wed May 18 23:36:56 -0700 2011 
2011-05-19T06:36:56+00:00 heroku[router]: Error H13 (Connection closed without response) -> GET xxx.xxxx.com/authors/cash_payment_receipt/4dd4aff0a2d5a5000100000c.pdf dyno=web.1 queue=0 wait=0ms service=0ms bytes=0 
2011-05-19T06:36:56+00:00 app[web.1]: !! Unexpected error while processing request: PDF could not be generated! 
2011-05-19T06:36:56+00:00 app[web.1]: /app/.bundle/gems/ruby/1.8/gems/wkhtmltopdf-0.1.2/bin/wkhtmltopdf_linux_386: error while loading shared libraries: libfontconfig.so.1: cannot open shared object file: No such file or directory 

我加入了wkhtmltopdf斌到我的轨道根/ bin目录,检查了权利,并没有问题。我首先尝试了0.10rc2并将其移回到0.9.9,但它们都给出了相同的结果。

我无法找到谷歌任何有关我的错误。我没有看到我做错了什么。

的ENV是: - 导轨3.0.7 - 红宝石1.8.7

感谢,

啤酒

+0

我证明这个问题的答案很详细这里http://*.com/a/16577677/307308 – scarver2 2013-05-16 02:26:53

this github项目是非常有帮助的,我有它在轨运行3感谢这个

项目,我能够遵循在此介绍https://github.com/jordan-brough/heroku-pdf使自己的项目复制的步骤,它能正常工作在本地和在Heroku。

然后我更新的应用程序使用Rails 3.0.9的工作。它在heroku http://heroku-pdf-3.heroku.com/上运行。您可以从该项目的here中获取我的代码。

我最近建立了一个创业板的wkhtmltopdf二进制文件在Heroku上,您无需在自己的仓库安装任何的二进制文件。它还包含了用于开发的OSX(达尔文)二进制文件。它曾与PDFKit,而且也应该与WickedPDF工作以及

https://github.com/bradphelan/wkhtmltopdf-heroku 

或在您的Gemfile作为

gem "wkhtmltopdf-heroku" 
+0

我使用pdfkit生成PDF的.. 。为了生产目的,我将你的宝石包含在制作组中,并将我的应用程序推送到heroku,但未能生成pdf。我错过了什么?你有没有实施你的宝石的任何文档? – prem 2013-09-02 12:30:43

为了记录在案,我的经历:这工作完全在我们的舞台ENV(相同的Heroku设置),但部署到生产可以打破上面的错误(但并非总是)。

发生这种情况时,重新部署工作(不知道为什么)。因为它是一个git回购,你必须做一个小小的改动,否则它不会让你再推一次。

我有同样的问题。我通过使用wkhtmltopdf二进制文件的amd64版本而不是i386来修复它。

的wicked_pdf使用wkhtmltopdf到HTML转换为PDF(正如其名字显然状态)。您可以下载其二进制文件here,并将其放置在您的应用程序bin文件夹中。

您还需要创建一个wicked_pdf.rb初始化指向二进制:

# config/initializers/wicked_pdf.rb 

WickedPdf.config = { 
    :exe_path => Rails.root.join('bin', 'wkhtmltopdf-amd64').to_s, 
} 

但是,如果你需要输入图像转换成PDF文件,你需要一个X服务器上运行。既然你不能运行的Heroku一个X服务器,有两种出路:

  • 使用xvfb到虚拟X服务器环境中包装你wkhtmltopdf二进制
  • 在另一台服务器上安装HTML到PDF提供商,您可以获得更多灵活性,例如RackSpace或Amazon EC2中的VPS。

我更喜欢第二种选择,因为它将PDF创建分离到另一个服务器中,并且不会影响具有性能问题的其他应用程序。

你可以看到如何做到这一点的位置:http://blog.hugerepo.com/2013/04/29/how-to-create-your-own-html-to-pdf-provider/

+1

这是否适用于pdfkit?并会宝石“wkhtmltopdf-heroku”做任何帮助,以方便安装? – prem 2013-08-24 09:20:10