25

wkhtmltopdf を使用して html を pdf に変換する予定ですが、wkhtmltopdf のスケーラビリティが懸念されます。誰もそれがどのようにスケーリングするか知っていますか? 私たちの Web アプリは、数十万の (比較的複雑な) html を変換しようとする可能性があるため、何らかのアイデアを得ることが重要です。誰もこれに関する情報を持っていますか?

4

5 に答える 5

23

まず第一に、あなたの質問は非常に一般的です。プロジェクトのスケーラビリティについて尋ねる場合、考慮すべき多くの変数があります。明らかに、「数十万」の HTML ファイルを 1 週間かけて変換することと、それを 1 日または 1 時間で変換することを期待することには違いがあります。その上、「比較的複雑な」HTML は、他の人にとっては異なる意味を持つ場合があります。

そうは言っても、wkhtmltopdf を利用して、約 450,000 の html ファイルを変換して、これと同様のことを行ったので、私は考えました。私の経験を共有します。

これが私のシナリオでした:

  • 450,000 個の HTML ファイル
    • ファイルの 95% は 1 ページの長さでした
    • 一般に 2 つのイメージを含む (相対パス、ローカル システム)
    • 表形式のデータ (入れ子になったテーブルが含まれることもある)
    • 単純なマークアップ (強い、イタリック、下線など)
  • 予備のデスクトップ PC
    • 8GBのRAM
    • 2.4GHz デュアルコアプロセッサー
    • 7200RPM HD

PHP で記述された単純なシングル スレッド スクリプトを使用して、フォルダーを反復処理し、html ファイル パスを wkhtmltopdf に渡します。すべてのファイルを変換するのに約 2.5 日かかりましたが、エラーはほとんどありませんでした。

これにより、Web アプリケーションで wkhtmltopdf を利用することで何が期待できるかについての洞察が得られることを願っています。これをより優れたハードウェアで実行することで明らかな改善が見られますが、主にマルチスレッド アプリケーションを利用してファイルを同時に処理することによって改善されます。

于 2012-07-25T01:59:24.930 に答える
9

私の経験では、パフォーマンスはあなたの写真に大きく依存します。大きな写真がたくさんあると、大幅に遅くなる可能性があります。可能であれば、サーバーの負荷を見積もってテストを実施しようと思います。集中的な操作に使用する人もいますが、何十万ということは聞いたことがありません。私はすべてのように、それはあなたのコンテンツとリソースに依存すると思います。

次の引用は、wkhtmltopdfメーリングリストから直接引用したものです。

私はwkHtmlToPDFを使用して、1日に約6000通の電子メールをPDFに変換しています。それはすべて4GBのメモリを備えたクアッドコアサーバーで行われます...それだけでは十分です。

パフォーマンスに関するヒントがいくつかありますが、パフォーマンスを最適化する前に、ボトルネックを試してみることをお勧めします。たとえば、可能であれば、間にWebサーバーを配置するのではなく、ディスクから直接画像をロードすると、かなり高速化できると言った人がいたことを覚えています。


編集:これに加えて、私はwkhtmltopdfで遊んで楽しんだ。現在、4Gbメモリを搭載したIntel Centrino 2で、57ページのコンテンツ(混合p、ul、table)、最大100枚の画像、およびtocが一貫して<7秒かかるPDFを生成します。また、Visual Studio、ブラウザー、httpサーバー、および速度を低下させる可能性のあるその他のさまざまなソフトウェアを実行しています。ファイルの代わりにstdinとstdoutを直接使用します。


編集:私はこれを試していませんが、CSSをリンクしている場合は、HTMLファイルに埋め込んでみてください(効果を正しく確認するには、テストの前後に行うことを忘れないでください!)。ここでの改善は、キャッシュやCSSが提供される場所などに依存する可能性があります-毎回ディスクから読み取られるか、scssからの再生成が禁止されている場合、かなり遅くなる可能性がありますが、結果がWebサーバーによってキャッシュされる場合(私は思いませんwkhtmltopdfはインスタンス間で何でもキャッシュします)大きな効果はないかもしれません。YMMV。

于 2012-07-24T09:06:13.183 に答える
4

wkhtmltopdf --print-media-type爆速です。しかし、それでは通常の CSS スタイルが失われます。

これは、複雑な html ページのエクスポートには理想的なソリューションではない可能性があります。しかし、私のhtmlコンテンツは非常にシンプルで表形式であるため、うまくいきました。

バージョンでテスト済みwkhtmltopdf 0.12.2.1

于 2015-03-03T22:18:49.563 に答える