Создание (сложный?) Документ в формате doc / pdf с использованием Java - каков наилучший способ? - PullRequest
1 голос
/ 01 мая 2011

нам нужно создать документ в формате 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 ]

2 голосов
/ 01 мая 2011

Вы можете использовать преобразования XSL-FO, если вы не хотите делать это программно.

Я все равно рекомендую iText.

1 голос
/ 01 мая 2011

Чтобы ответить на ваш первый вопрос, я бы использовал шаблон проектирования Observer для обновления модели документа только тогда, когда соответствующие поля изменяются программно.

Для вашего второго вопроса, если вы использовали модель документа с наблюдателемВы можете просто создать реализацию по умолчанию для своих полей, которая будет изменяться только через события, которые вы кодируете в своем наблюдателе.

Проверьте шаблон: Шаблон наблюдателя

...