我有一个简单的HTML文档。它被读入我编写的一些Java代码,并通过一些XSL-T和Apache FOP翻译成PDF。
我的问题是,这个HTML文档是一种合法的表单,在发送给各种计算机/用户之前,应该预先填充Java对象中包含的值。 如何读取动态(运行时)数据,然后像往常一样继续转换?
我想知道可以在服务器端完成此操作的策略/技术。任何想法将不胜感激!
(我可以采用一个非常难看的解决方案,我在我的Java代码中将字符串拼凑在一起并在中间一次插入一个数据,但是我有很多部分,我的公司很难维护这些代码。)
编辑:为了澄清 - 我发现this answer already on SO解决了类似问题。在这个问题中,我相信,它通过文本输入到用户的浏览器中来读取数据。这是一个客户端问题。我需要从服务器端的Java代码中读取数据。
答案 0 :(得分:0)
我的问题措辞不是很好,请允许我澄清一下我想要完成的工作以及我是如何完成的(对于谷歌观众来说。)
我有一个用XHTML(格式良好的HTML)编码的文档。我需要本文档的PDF版本的最终结果,并在运行时收集一些数据。我不认为我的解决方案是新颖的,甚至接近某人可能做到的最佳方式,但为了结束,我将列出它:
将标签插入HTML / XML文档中,表明需要在以后填写值。例如,<day/>
表示时间戳中的日期。
保留现有的XSL-T文档,将文本从XML转换为PDF格式。它忽略了<day/>
之类的所有标签,这很好,因为我没有立即准备好替换所有字段。
使用简单的正则表达式在运行时使用适当的内容replaceFirst("<day/>", getTimestamp())
创建代码。需要通过用户输入数据时触发的“struts”事件来调用此方法。
运行时,程序接受用户数据,调用读取XHTML文件的方法,用收集的数据替换字段,使用Apache FOP将修改后的文件传递给我的XSLT转换。
这不优雅,但它可以解决问题。