Whiteship's Note

'PDF'에 해당되는 글 1건

  1. 2007.05.16 14.6. Document views (PDF)

14.6. Document views (PDF)

Spring/Chapter 14 : 2007.05.16 13:39


이미 이전 글에서 XML 형식으로 모델 데이타를 보여주는 방법을 살펴 봤기 때문에 PDF와 Exel로 출력하는 방법도 비슷하게 배울 수 있을 것 같습니다.

문제는 view 클레스를 만드는 기술인데 XSLT 만드는 방법은 쉬웠는데 PDF와 Exel 만드는 코딩은 어떨지 해봐야겠네요. :)

1. 먼저 추가 적인 jar 파일들이 필요합니다.

Exel은 poi.jar PDF는 iText.jar가 필요합니다.

2. 이번에도 컨트롤러 만들고 등록 합니다.

public class ViewMemberListWithPDFController extends AbstractController{

    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest arg0, HttpServletResponse arg1) throws Exception {
        List<MemberInfo> infos = ServiceManager.getMemberInfoService().getAll();
        Map<String, Object> members = new HashMap<String, Object>();
        members.put("members", infos);
        return new ModelAndView("memberListPdf", members);
    }

}

<bean name="/viewMemberListWithPdf.html" class="net.ailgejava.members.controller.ViewMemberListWithPDFController" />


Xstl 예제랑 거의 같은데 view 이름만 다릅니다.

3. view 클레스들을 만듭니다.

public class MemberListPdfView extends AbstractPdfView {

    @SuppressWarnings("unchecked")
    @Override
    protected void buildPdfDocument(Map model, Document document, PdfWriter writer, HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        List<MemberInfo> memberInfos = (List<MemberInfo>) model.get("members");

        for(MemberInfo memberInfo : memberInfos){
            document.add(new Paragraph(
                memberInfo.getName() + " " +
                memberInfo.getEmail() + " " +
                memberInfo.getHome()
            ));
        }
    }

}

몬지 모르겠지만 Paragraph 객체로 찍는 것 같군요.

4. view 프로퍼티에 등록합니다.

memberListXml.class = net.ailgejava.members.view.xml.MemberListXMLView
memberListXml.stylesheetLocation=/WEB-INF/xsl/memberList.xslt
memberListXml.root=memberInfos

memberListPdf.class=net.ailgejava.members.view.pdf.MemberListPdfView

이전 글에 등록했던 내용과 같이 있습니다.

5. 데모

사용자 삽입 이미지
사용자 삽입 이미지
이런.. 이름이 안 찍혔네요. 흠... 왜이럴까요; 이름은 한글이라 인코딩 문제가 있는 걸까요. 흠... confluence에서 PDF로 빼낼 때도 한글 문제가 있었는데 어떻게 해결했었는지 살펴봐야겠네요.

'Spring > Chapter 14' 카테고리의 다른 글

Spring에서 Freemarker 사용하기  (2) 2008.02.20
14.6. Document views (Excel)  (0) 2007.05.16
14.6. Document views (PDF)  (0) 2007.05.16
14.5. XSLT  (1) 2007.05.16
14.3. Tiles  (0) 2007.05.15
14. Integrating view technologies  (0) 2007.05.15
top