使用java创建(复杂?)doc / pdf文档 - 最好的方法是什么?

时间:2011-05-01 18:08:53

标签: java templates pdf doc

我们需要创建包含模型数据某些部分的pdf或doc文档。每个模型对象包含单个值,加上很少的相关数据集合,它们具有不同的长度。现在,可以禁用模型数据的某些部分,以便它们不应包含在最终文档中。我需要一种聪明的方法来仅使用模型数据的选定部分来创建文档,而且我不会像以下那样陷入混乱:

if (DATA_TITLE is selected)
   add DATA_TITLE to document
if (DATA_AUTHOR is selected)
   add DATA_TITLE to document
etc..

如何以优雅的方式避免这种情况?

另一件事:目前我想以“编程方式”创建文档,例如使用Apache POI lib。但是,也许还有其他方法,我可以使用文档模板并用EL表达式填充数据,从而使用带有模板的$ {data.author}字段。但是,如何管理这样一个事实,即并非所有数据元素都可以选择用于文档导出,而且相关数据的集合可能具有不同的长度。

我需要你宝贵的知识:)。

2 个答案:

答案 0 :(得分:2)

如果您不想以编程方式执行此操作,则可以使用XSL-FO转换。

我仍然推荐iText。

答案 1 :(得分:1)

要回答您的第一个问题,我会使用Observer设计模式仅在以受编程方式更改受影响的字段时更新文档模型。

对于第二个问题,如果您将文档模型与观察者一起使用,则只需为字段创建默认实现,只需通过编码到观察者中的事件进行更改即可。

查看模式:Observer Pattern