5

https://github.com/jordan-brough/heroku-pdfのガイドに従って、wicked_pdf をローカルで動作させ、期待どおりに PDF を作成することができました。ただし、herokuにプッシュすると、pdfを呼び出すたびにしばらくするとアプリがクラッシュします

ログは私にこれを与えます:

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 を rails-root/bin ディレクトリに追加し、権限を確認しましたが、問題ありませんでした。最初に 0.10rc2 を試してから 0.9.9 に戻しましたが、結果はすべて同じです。

エラーに関連する Google で何も見つかりません。私が間違っていることはわかりません。

env は次のとおりです。 - rails 3.0.7 - ruby​​ 1.8.7

ありがとう、

エール

4

6 に答える 6

8

最近、自分のリポジトリにバイナリをインストールしなくても、wkhtmltopdf バイナリが heroku で動作するように GEM を作成しました。また、開発用の OSX ( darwin ) バイナリも同梱されています。PDFKitで動作し、おそらくWickedPDFでも動作するはずです

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

またはあなたのGemfileで

gem "wkhtmltopdf-heroku"
于 2011-09-09T06:46:54.460 に答える
5

この githubプロジェクトは私にとって非常に役に立ちました。このおかげで Rails 3 プロジェクトで実行しています。

于 2011-05-21T07:52:11.343 に答える
4

https://github.com/jordan-brough/heroku-pdfで説明されている手順に従って、プロジェクトの独自のコピーを作成することができました。これは、ローカルおよびherokuで正常に機能しました。

次に、Rails3.0.9で動作するようにアプリケーションを更新しました。herokuhttp : //heroku-pdf-3.heroku.com/で実行されています。このプロジェクトのコードはここから入手できます。

于 2011-07-14T23:55:32.027 に答える
2

記録として、これがステージ環境(同じherokuセットアップ)で完全に機能することを経験しましたが、本番環境へのデプロイは上記のエラーで中断する可能性があります(常にではありません)。

これが発生すると、再デプロイが機能しました(理由はわかりません)。これはgitリポジトリであるため、小さな変更を加える必要があります。そうしないと、再度プッシュすることができません。

于 2011-12-21T20:22:27.417 に答える
1

wicked_pdf はwkhtmltopdf、HTML を PDF に変換するために使用します (名前が明らかに述べているように)。ここからバイナリをダウンロードして、appsbinフォルダーに配置できます。

wicked_pdf.rbまた、バイナリを指す初期化子を作成する必要があります。

# config/initializers/wicked_pdf.rb

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

ただし、PDF ファイルに画像を入力する必要がある場合は、X サーバーを実行する必要があります。Heroku では X サーバーを実行できないため、次の 2 つの方法があります。

  • xvfb仮想 X サーバー環境内で wkhtmltopdf バイナリをラップするために使用します。
  • RackSpace や Amazon EC2 の VPS など、柔軟性の高い別のサーバーに HTML から PDF へのプロバイダーをインストールします。

別のサーバーで PDF の作成を切り離し、パフォーマンスの問題でアプリケーションの残りの部分を危険にさらさないため、私は 2 番目のオプションを好みます。

ここでその方法を確認できます: http://blog.hugerepo.com/2013/04/29/how-to-create-your-own-html-to-pdf-provider/

于 2013-04-30T18:59:34.360 に答える
0

私も同じ問題を抱えていました。i386 の代わりに wkhtmltopdf バイナリの amd64 ビルドを使用して修正しました。

于 2012-08-25T10:26:06.117 に答える