1

wicked_pdf (または wkhtmltopdf) は、プロダクション モードで奇妙な動作をします。問題を突き止めるのに少し時間がかかりましたが、私の PDF が壊れている理由は、画像が多すぎるか、ファイル サイズが大きすぎるためのようです。

300dpi の写真 (4 MB) を使用しようとすると、壊れてしまいます。72 dpi に下げると、うまくいきます… 時々。サムネイルだけを使用すると、常に機能します。

テストを行いました: 小さなテスト画像を含む 1 つのカバーシートが機能します。表紙は2枚でも…最大30枚まで対応。カバー シート 31 を添付すると、常に PDF が壊れます。

開発中はすべて問題なく、300dpi 画像、5 MB、50 MB でも問題ありません。

この問題について知っている人はいますか?そして、それを修正する方法は?:-)

PS: コマンド ライン経由で wkhtmltopdf を実行すると、画像がまったく表示されないため、wkhtmltopdf または wicked_pdf が問題であるかどうかをテストするのは困難です。私はPDFを生成するのが本当に好きではありません!

4

1 に答える 1

1

wkthmltopdfは、それを強化するWebkitブラウザーと同じように、すべてのリソースを集めてpdfにレンダリングするために最善を尽くします。それらをすべて時間内に取得してレンダリングできない場合は、未完成のpdfを出力することがあります。

このプロセスを最適化するために確認または実行できることがいくつかあります。

すべてのアセット(images、javascript、css)が、「/ foo.jpg」のような相対パスではなく、「http://images/foo.jpg」のようなフルパスで正しくレンダリングされていることを確認してください。

これにより、wkhtmltopdfがWebを介してこれらのアセットを取得するようになりますが、それが十分に速くない場合もあるため、可能であれば、'file:/// projects / foo / images/foo.jpgなどのファイルシステムリソースリンクを使用してみてください。 '。wicked_pdf_imageおよびその他の関連するヘルパーがこれを実行しようとしますが、使用しているRailsのバージョンによっては、結果が少し異なる場合があります。

Wkhtmltopdfは大量のメモリとCPUを使用します(特に大きな画像の場合)。本番サーバーがそれに飢えていないことを確認してください。

wicked_pdfのgitmasterバージョンには、I/Oストリーミングの代わりに一時ファイルを使用するように最適化されています。Gemfileをそのgit://github.com/mileszs/wicked_pdf.gitにポイントし、それによって状況が改善されるかどうかを確認します。gemの新しいバージョンは、数日中に公開される可能性があります(wicked_pdfのメンテナンスとリリース管理の多くを行います)。

報告してください。上記のいずれかまたはすべてが状況を改善するかどうかを知りたいです。

于 2012-11-19T16:26:54.367 に答える