2011-12-28 11 views
3

クライアントデータを保存するDjangoアプリがあります。現在、データベースには1,000を超えるクライアントが存在します。年に2回、私は各クライアントの半カスタマイズされた手紙を印刷する必要があります。理想的には、ボタン/リンクをクリックして、バッチ全体をプリンタに送信することができます。私はそれぞれの手紙のために "印刷"をクリックする必要はないので、それは不当に時間がかかるでしょう。Django - 文書をたくさん印刷していますか?

私はCeleryを使ってすべての文書を印刷するプロセスを悩ましていると考えましたが、どのように達成されるのか分かりません。私はドキュメントを「ビルド」して、それが起こるのをユーザが知らずにプリンタに送信しなければならないだろう。

私が持っていたもう1つのアイデアは、1ページのすべての文字を含む「Webページ」を作成することでした。その後、ユーザーは「印刷」を押すことができ、ページは文字の集合としてプリンタから出てきます。しかし、これはお粗末です。

アイデア?

おかげ

答えて

5

このタスクにはwkhtmltopdfを使用することをお勧めします。その後、長いHTMLから必要な手紙を作成してページの区切りを付けたり、別々に印刷して、定期的にPDFを印刷したりすることができます。

http://code.google.com/p/wkhtmltopdf/

のWebKitの略週間、それは非常に良い品質のPDFの印刷されたよう。これは、ダウンロードして実行できるコマンドラインツールです。小さなチュートリアルはここにあります。

http://shivul.posterous.com/django-create-dynamic-pdfs-using-wkhtmltopdf

ReportLabのも良いオプションです。しかし、私自身は生のpdf構文を作成したくないし、ReportLabのhtmlライブラリであるPisaはそれほど良いものではない。 wkhtmltopdfははるかに使いやすくなりました。

+0

返信/リンクありがとうございます。そのwkhtmltopdfは良いオプションのように見えますが、2番目の段落では、私がちょっと調べたかもしれないもっと簡単な解決策が示唆されています。 HTMLをPDFに変換するのではなく、ビューから巨大なHTMLページを作成し、**各ページの間に** pagebreaks **(あなたが述べたように)を挿入するのはなぜですか?私はHTMLコード内で「改ページ」することさえ考えていませんでしたが、DIVをA4用紙の正確な高さにすることで混乱しなければならないと仮定しました。 – Garfonzo

1

私はあなたが一度にプリンタに送信することができ、単一のPDF文書として全体を作成するために、ReportLabのようなものを使用してお勧めしたいです。

generating PDFs from Djangoのドキュメントを参照してください。

関連する問題