5

Ruby onRails3.2で印刷されたドキュメントの一種のメールマージを実装しようとしています。私は約8000人の受信者とテンプレートの起源をMicrosoftWordに持っています。テンプレートには画像(写真)が含まれ、約10〜20ページが含まれています。

実は、オリジナルのテンプレートをテキスタイル(赤布)に書き直して、インターネット(httpアドレス)から写真を挿入しています。私はすべてのパーソナライズなどを行いました。そのため、HTMLファイルを生成し、1000ページごとに多数の小さなファイルに分割する必要があります。合計約8000x20ページ=160.000ページを印刷する必要があります。

HTMLからPDFに印刷する方法を知っている人はいますか?または、用紙トレイ(最初と最後のページ)を変更したり、20ページごとに綴じたりするためのコマンドを挿入する方法はありますか?

アイデアありがとうございます:-)

4

1 に答える 1

0

ここに 1 つのアイデアがあります。Rails アプリで、ユーザーごとに 1 つの html を返すように設定します。また、ユーザーのリストを便利な形式 (おそらく json 形式) で返す素敵な /users/ index メソッドを用意してください。

ここで、Ruby や Bash など、都合のよいもので記述されたローカルスクリプトを使用して、次のことを行います。

  • その /users/ メソッドからユーザーのリストを取得し、おそらくファイルに保存します
  • ユーザーのリストを (ファイルから取得するため、すべてがメモリ内にあるわけではありません) ループし、電子メールの HTML をフェッチします。
  • ループ内で、または HTML を保存したディレクトリ内のファイルをループして、ダウンロードした各 HTML から pdf を生成します。wkhtmltopdf などを使用します。
  • 各pdfをプリンターに送信します。同じループ内で再度行うか、保存されたpdfをループします。

工夫をこらして、もう少し効率的にしたい場合は、resque のようなキューイング システムを使用して、これらの各箇条書きをキューにし、キューごとに 1 つのワーカーを実行することができます。これにより、他の PDF をダウンロードして変換している間に一部の PDF の印刷を開始できるため、全体の時間が短縮されます。ただし、そのようなキューイング システムにまだ慣れていない場合は、簡単なスクリプトで同様に実行できるはずです。

于 2012-10-10T20:28:20.690 に答える