web-dev-qa-db-ja.com

Python:.htmlから厳密に設計された自動マルチページ.pdfレポートを作成します

.htmlから厳密に設計された.pdfレポートを作成するためのPythonベースの優れたオプションは何ですか?

次の点を説明するために、ドラフト.pdfを添付しました。

  • レポートのデザインはかなり厳密に設計されています。言い換えれば「見た目は重要」。
  • レポートには、複雑なベクターグラフィックス(パッケージ: Matplotlib )が含まれています。これらはサイズがわずかに異なる場合があります。
  • レポートには画像が含まれています。
  • レポートには、動的に入力される多数の数字/文字列が含まれます。
  • 最適なソリューションは、オープンソースパッケージを使用することです。
  • .htmlを Django で作成します。
  • レポートは複数のページにまたがることがあります。

レポート作成を促進する非常に多様なパッケージがすでに大量にあるように見えます。いくつか例を挙げると、 xhtml2pdfweasyprintDjango-wkhtmltopdf です。

私の経験では、これらのツールを使用すると、コンテンツから.pdfを簡単に作成できます。私たちの場合のように、.pdfを高度に定義された設計構造に分類する必要がある場合、難しい部分が生じます。残念ながら、高度に設計された構造を持つさまざまなpdf生成パッケージの.pdfの例を見つけることができませんでした。

これについてのあなたの経験は何ですか?どのオプションがうまく機能しましたか?見落としている複雑な例はありますか?

Some example of a strictly-designed "Looks matter" report

12
elke

これを見ることができますPythonパッケージ: weasyprint

Webページ: http://weasyprint.org/

公式ドキュメント: http://weasyprint.readthedocs.io/en/latest/

WebページまたはhtmlファイルからPDFを生成できるため、ドキュメントで指定されている)CSSと競合する可能性がありますが、必要なものを提供します。

4
Brian Ocampo

最近、weasyprintとjinjaを使用して、htmlからの自動レポート生成を行いました。うまく機能し、厳しいフォーマット要件を満たすことができると思います。しかし、私は他のどれも使用していません。

レポートには、画像に変換されたグラフ、通常の動的に生成されたテキスト、大きなテーブルなどの画像がありました。これらはすべて、9x11のページサイズに制限されていました。 Weasyprintは自動的にページネーションの良い仕事をしますが、その点でも設定可能です。

このガイドは非常に役立つことがわかりました: http://pbpython.com/pdf-reports.html

私はpandasはグラフのhtml生成のための完全な過剰であり、それを使用して多くの設定可能性を失うと思いますが。

3
Stats4224