0

我有一个普通的 ole' HTML 文档。它被读入我编写的一些 Java 代码,并通过一些 XSL-T 和 Apache FOP 翻译成 PDF。

我的问题是,这个 HTML 文档是一种合法形式,在发送给各种计算机/用户之前,应该预先填充 Java 对象中包含的值。如何读取动态(运行时)数据,然后像往常一样继续对其进行转换?

我想知道可以在服务器端完成的策略/技术。任何想法,将不胜感激!

(我可以采用一个非常丑陋的解决方案,将我的 Java 代码中的字符串拼凑在一起,然后在中间一次插入一个数据,但是我有很多片段,而且我的公司很难维护这些代码。)

编辑:澄清一下——我已经在 SO 上找到了这个答案,它解决了类似的问题。我相信,在那个问题中,它解决了通过文本输入从用户浏览器中读取数据的问题。那是客户端的问题。我需要从服务器端的 Java 代码中读取数据。

4

1 回答 1

0

我的问题措辞不是很好,请允许我澄清一下我想要完成什么以及我是如何完成它的(对于谷歌观众。)

我有一个用 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 回答