1

我们需要创建一个包含部分模型数据的 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} 字段。但是,如何管理这样一个事实,即并非所有数据元素都可以选择用于文档导出,并且相关数据的集合可能具有不同的长度。

我需要你的宝贵知识:)

4

2 回答 2

2

如果您不想以编程方式进行,可以使用 XSL-FO 转换。

我仍然会推荐 iText。

于 2011-05-01T18:13:54.073 回答
1

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

对于第二个问题,如果您使用带有观察者的文档模型,您可以简单地为您的字段创建一个默认实现,该实现只能通过您在观察者中编码的事件进行更改。

查看模式:观察者模式

于 2011-05-01T18:19:18.673 回答