2011-05-01 2 views
1

모델 데이터의 일부분을 포함하는 pdf 또는 doc 문서를 만들어야합니다. 각 모델 객체에는 단일 값과 관련 데이터의 콜렉션이 거의 없으며 다양한 길이입니다. 이제 모델 데이터의 일부분을 비활성화하여 최종 문서에 포함하면 안됩니다.java로 doc/pdf 문서를 만드는 (복잡한?) 가장 좋은 방법은 무엇입니까?

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} 필드를 사용하십시오. 그러나 문서를 내보내기 위해 모든 데이터 요소를 선택할 수있는 것은 아니며 관련된 데이터 모음은 다양한 길이 일 수 있다는 사실을 관리하는 방법.

나는 프로그래밍을 수행하지 않으려면 XSL-FO 변환을 사용할 수 있습니다 당신의 소중한 지식 :

답변

2

이 필요합니다.

iText를 계속 사용하고 싶습니다.

1

첫 번째 질문에 답하기 위해 영향을받는 필드가 프로그래밍 방식으로 변경된 경우에만 Observer 디자인 패턴을 사용하여 문서 모델을 업데이트합니다.

두 번째 질문에 옵서버가있는 문서 모델을 사용했다면 관찰자로 코딩 한 이벤트를 통해서만 변경 될 수있는 필드의 기본 구현을 간단하게 만들 수 있습니다.

체크 아웃 패턴 : Observer Pattern

+0

난 정말 모르겠어요은 어디까지 후두둑 스틱해야한다. 나는 우리가 자신을 올바르게 이해하는지 실제로 확신하지 못합니다. 모델 데이터에는 Books 컬렉션이 있습니다. 이 책에는 작가, 제목 등과 같은 여러 가지 데이터가 나와 있습니다. 사용자는 웹 인터페이스를 통해 책 설명의 일부를 내 보낸 문서에 포함시켜야합니다. 현재 모든 도서 목록이 정렬되어 있으며 책 설명 부분이 선택된 경우'book.hasPart (PART_NAME) '을 통해 확인할 수 있습니다. 이제는이 모든 데이터를 pdf 또는 doc 문서에 넣어야합니다.) 그렇다면 Observer Pattern을 사용하는 팁은 유효합니까? – user1293910asd

+0

사용자가 무엇을 포함해야하는지 선택하는 것을 듣는 관찰자를 코드에 추가합니다. 선택/선택 해제하면 관찰자가 문제의 책을 찾을 수 있으며 (지도 구현 컬렉션이 가장 좋을 수도 있음) 그에 따라 변수를 업데이트합니다. – Zach