私は自分のDjango Webアプリケーションからのデータを自動収集し、ダウンロードするようにユーザーに提案するPDFフォームを用意しています。どのようなPythonライブラリを使用すれば、簡単にPDFフォームを事前入力できますか?これらのフォームは印刷されることを意図しています。Django/PythonでPDFフォームを自動入力できますか?
答えて
非常に動的なPDFを生成しており、すべてをプログラムで制御する必要がある場合、Reportlabは優れています:データとレイアウト。
既存のPDFでフォームに記入するだけでは、reportlabは過剰であり、基本的には既に作成済みのフォームでPDFを取り出すのではなく、最初からreportlabでPDFを再構築する必要があります。
PDFフォームはFDFデータで動作します。私はPHP FDFライブラリをPythonに移植しました。これをやろうとしたらfdfgenとしてリリースしました。私はそれを使用してフォームのデータを含むfdfファイルを生成し、次にpdftkを使用してfdfをPDFフォームにプッシュして出力を生成します。全体のプロセスは、このように動作します
:
- あなた(またはデザイナー)AcrobatでPDFまたは何を設計し、フォームフィールドをマークし、フィールド名をメモします(私は正確にどのようにわかりませんこれは完了です;私たちのデザイナーはこのステップを行います)。フォームに「名前」と「電話」フィールドがあるとします。
FDFファイルを作成するために使用しfdfgen:
from fdfgen import forge_fdf fields = [('name','John Smith'),('telephone','555-1234')] fdf = forge_fdf("",fields,[],[],[]) fdf_file = open("data.fdf","w") fdf_file.write(fdf) fdf_file.close()
は、その後、あなたがマージして平坦化するpdftkを実行します。
と記入、編集可能なはもはや存在していることを意味しない(平坦化フォームフィールド)pdfはoutput.pdfになります。
それは少し複雑だし、pdftkをインストールするには、痛みをすることができます(Javaスタックを必要とし、回避する必要があるのUbuntu 9.10上のバグがある)が、それは私がすることができました、最も単純なプロセスです私たちのデザイナーは、レイアウトの変更を自分が望むPDFにすることができ、フィールドの名前を変更しない限り、新しいものをドロップすることができます。ワーキング)。
fdfgenにドキュメントがないことをお詫び申し上げます。 forge_fdf()は本当に必要な唯一の関数であり、引数を説明するドキュメントストリングがあります。私はそれ以上のことをやっていたことはありません。
Try reportlab
また、Outputting PDFsに捨ててください。
編集
私は別の考えを持っていた(ただし、既にあるPDFファイルを持っている、と私はより良いthraxilの答え@好きなら、それは助けにはなりません)。
私は今年、継続教育コースの「修了証明書」を作成したプロジェクトに取り組みました。私が見た角度の1つは、適切にスタイル設定されたWebページ(サーバー側の「Print to PDF」のようなもの)からPDFを直接生成しようとしていたことです。
私が見つけたツールの1つはwkhtmltopdfでした。これはURLをPDFに変換し、かなり良い結果をもたらす、自己完結型のWebKitブラウザです。
アイデアはdjangoのテンプレートエンジンを使用して、必要なもの(画像を含む)を含むページをまとめ、wkhtmltopdfにURLを渡し、出力を取得してユーザーに返します。
実際に実装するだけで(パイプを開くだけで)、ソースのPDFファイルをサーバーにアクセスできないように心配する必要がなく、HTMLを変更してPDFを再設計することができます。
+1。プログラマはhtml/cssでドキュメントをデザインし、良質なPDFに変換することができます。 – gorsky
上記のThraxilのソリューション上に構築されたdjangoでpdfビューを作成するための準備が整ったソリューションです。 githubのユーザーに感謝します。 `wkhtmltopdf` - 偉大なユーティリティを言及するため
- 1. Ionic - Angularjs - InAppBrowserでフォームを自動入力
- 2. CURLを使用してフォームに自動入力できるか
- 3. データをPDFに自動入力する
- 4. フュージョンテーブルデータ付きの自動入力Googleフォーム
- 5. 別のフォームからiframeで外部フォームを自動入力
- 6. Wordpressフォームの自動入力
- 7. HTMLフォームの自動入力
- 8. データベースからの自動入力フォーム
- 9. コンボボックスを使用してAccessでフォームを自動入力する
- 10. 自動入力フォームのjQuery機能?
- 11. Djangoフォームの自動入力ユーザー
- 12. C#でのPDF出力の自動テスト?
- 13. ブラウザの自動入力時に角2 - フォームが無効です
- 14. 自動タグでフォーム入力を行う方法
- 15. 自分のサイトから外部サイトのフォームに入力できますか?
- 16. ADFテーブルからADFフォームを自動入力する
- 17. セレンを使用してpdfを自動化できますか?
- 18. 入力に基づいて自動的にフォームに記入しますか?
- 19. 電子メールからフォームに自動入力する?
- 20. クレジットカードの自動入力でカードタイプのフィールドを設定できますか?
- 21. データ入力フォームを使用して特定のフィールドを自動入力する
- 22. pythonまたはbashからPDFフォームを一括入力
- 23. SQl RS 2005 - ユーザーパラメータを入力した後、pdfに自動エクスポート
- 24. PDFで記入可能なフォーム自体をHTTPS URLに投稿できますか?
- 25. Get/POSTリクエストを使用してWebフォームを自動入力しますか?
- 26. 入力フォームからJSファイルに値をコピー(自動挿入)する方法
- 27. asposeでPDFフォームに記入
- 28. ランダムデータでプリミティブプロパティを自動的に入力しますか?
- 29. Google Places APIを使用して購読フォームに入力を自動入力
- 30. 外部サイトのフォームを自動入力して送信する
このサンプルコードを試してみると、次のエラーが表示されます。UnicodeEncodeError: 'ascii'コーデックで10-13桁の文字をエンコードできません:序数が範囲外(128) – MikeN
utf: "fdf_file = codecs.open (「data.fdf」、「w」、「utf-8」)」と表示されます。まず「コーデックをインポートする」必要があります。また、私は著者に報告する特殊文字エンコーディングの問題を発見しました。 –
+1すれば可能です。 fdfgenありがとうございました。私はCSVファイルからたくさんのフォームを一括して埋め込むことができました。 –