3

エンドユーザーが自分でレイアウトをカスタマイズできるPDFを生成するためのベストプラクティスを考えるために、数日を費やしました。PDF出力は、サーバーに保存するか、PHPファイルに返送して、PHPファイルで保存できるようにする必要があります。また、PHPファイルは、正常に処理されたことを認識する必要があります。

これを行う最良の方法は、XML、XSLT、およびApacheCocoonを使用することだと思いました。しかし、これが可能かどうか、または同様のことをしている人々の情報が見つからないため、それが良い考えかどうかはわかりません。珍しい問題ではありません。

このアイデアは、XSLTを介してXMLをPDFに変換するCocoonについて読んだときに思いついたものです。

http://cocoon.apache.org/2.1/howto/howto-html-pdf-publishing.html

変数を取り込むことができる:

http://old.nabble.com/how-to-access-post-parameters-from-sitemap-td31478752.html

これは私が念頭に置いていたものです:

  1. phpファイルがユーザーによって呼び出されると、phpファイルは特定の名前のソースXMLファイルを生成します
  2. 次に、phpファイルは(同じWebサーバー上の)Cocoonに、XMLファイルにユーザー定義のXSLTを適用するように要求します。ここでは、適用するXSLTを知るためのパラメーターが必要になります。
  3. リクエストはPHPファイルによって処理され、サーバーにPDFとして保存され、後でメールで送信できます。

これはまったく機能しますか?これを処理するためのより良い方法はありますか?

主要な問題は、ユーザーがPDFのレイアウトを自分でカスタマイズできる必要があることです。また、PDFを保存して、後でメールで送信するためのサーバーが必要です。ユーザーは注文確認や請求書などに使用します。ユーザーごとにレイアウトをハードコーディングしたくありません。

4

2 に答える 2

0

私はwebkithtml2pdfを使用してPDFを生成します。通常のように印刷用のHTMLとCSSを使用してドキュメントを作成し、コンバーターを介して実行します。

請求書などの生成に最適です。ロゴやイラストにはSVGを使用できます。また、ベクターベースであるため、印刷物でも見栄えがします。輪郭が点線の丸い角でも完璧に機能します。

マイナーな落とし穴は、入力htmlにhtmまたはhtmlファイル名のサフィックスが必要であるため、デフォルトのtempfile関数を使用できないことです。

于 2012-06-03T12:02:12.620 に答える
0

JasperReports Serverをセットアップし、iReport Designerを使用してレポートを作成することで、過去にいくつかの良い結果が得られました。どちらもF/OSS(「コミュニティ」)エディションで利用できますが、必要に応じてサポートや付加価値を支払うことができます。

これは、Javaシステムの場合はJava APIを介して、PHPシステムの場合はSOAPを介してアクセスできるため、私たちにとって優れたソリューションでした。GUIデザイナーは、技術者以外のビジネススタッフにとっても、レポートの調整を非常に簡単にしました。

于 2012-06-03T14:31:33.827 に答える