0

プレーンな ole' HTML ドキュメントがあります。私が書いた Java コードに読み込まれ、XSL-T と Apache FOP を介して PDF に変換されます。

私の問題は、この HTML ドキュメントは、さまざまなコンピューター/ユーザーに送信される前に、Java オブジェクトに含まれる値を事前に入力する必要がある合法的な形式です。動的 (実行時) データを読み取り、通常どおり変換を続行するにはどうすればよいですか?

サーバー側で実行できる、これを行うための戦略/テクノロジーについて知りたいです。どんなアイデアでも大歓迎です!

(Java コードで文字列をつなぎ合わせ、途中で一度に 1 つずつデータを挿入するという非常に醜いソリューションを採用することもできますが、多くの部分があり、そのコードは会社が維持するのが難しいでしょう。)

編集:明確にするために-私はこの答えが既にSOにあることを見つけました。その質問では、フォームへのテキスト入力を介してユーザーのブラウザーからデータを読み取ることに対処していると思います。それはクライアント側の問題です。サーバー側にある Java コードからデータを読み取る必要があります。

4

1 に答える 1

0

私の質問はうまく表現されていませんでした。私が達成しようとしていたことと、それをどのように達成したかを明確にすることができます (Google 閲覧者向け)。

XHTML (整形式 HTML) でエンコードされたドキュメントがありました。実行時に収集されたデータを含む、このドキュメントの PDF バージョンの最終結果が必要でした。私の解決策は斬新ではないし、誰かが行う最良の方法に近いとは思いませんが、締めくくりのために、それをリストします。

  1. 後で値を入力する必要があることを示すタグを HTML/XML ドキュメントに挿入します。たとえば<day/>、タイムスタンプからの日。

  2. 既存の XSL-T ドキュメントを保持して、テキストを XML から PDF 形式に変換します。<day/>すべてのフィールドをすぐに置き換える準備ができていなかったので、どれがいいのかなどのすべてのタグを無視します。

  3. replaceFirst("<day/>", getTimestamp())実行時に適切なコンテンツを含むタグに単純な正規表現を使用してコードを作成します。このメソッドは、ユーザーがデータを入力したときにトリガーされる「struts」イベントを介して呼び出す必要がありました。

  4. 実行すると、プログラムはユーザー データを受け取り、メソッドを呼び出して XHTML ファイルを読み取り、収集したデータでフィールドを置き換え、変更されたファイルを Apache FOP を使用して XSLT 変換に渡します。

これはエレガントではありませんが、うまくいきます。

于 2012-07-20T19:26:27.620 に答える