Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 배열
- Spring
- 안드로이드
- AWT
- Android
- 클래스
- JSP
- 생성자
- struts2
- paint
- HTML
- 이클립스
- 오버로딩
- Eclips
- mybatis
- 국제화
- Java
- 예외처리
- 전화걸기
- oracle
- Graphic
- 메서드
- layout
- OGNL
- 에러페이지
- 어노테이션
- JavaScript
- 메소드
- 기본
- Menu
Archives
- Today
- Total
note
AbstractPdfView 클래스를 이용한 PDF 다운로드 구현(PDF 만들기) 본문
dispatcherNonHtml-servlet.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- 파일 다운로드 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.BeanNameViewResolver" /> <bean id="downloadController" class="madvirus.spring.chap07.controller.DownloadController" /> <bean id="download" class="madvirus.spring.chap07.view.DownloadView" /> <!-- PDF 다운로드 --> <bean id="pageReportController" class="madvirus.spring.chap07.controller.PageReportController" /> <bean id="pageReport" class="madvirus.spring.chap07.view.PageReportView" /> </beans>
PageReportController
package madvirus.spring.chap07.controller; import java.util.ArrayList; import java.util.List; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; @Controller public class PageReportController { @RequestMapping("/pageReport") public ModelAndView pdfReport(){ List<PageRank> pageRanks = new ArrayList<PageRank>(); pageRanks.add(new PageRank(1,"/bbs/mir2/list")); pageRanks.add(new PageRank(2,"/bbs/mir3/list")); pageRanks.add(new PageRank(3,"/bbs/changchun2/list")); return new ModelAndView("pageReport","pageRanks",pageRanks); } }
pageReport가 JSP를 사용하겠지만
xml 파일 다운로드에 보면
BeanNameViewResolver 가 데이터를 받아 들여
pageReport -> PageReportView가 실행된다
PageRank
package madvirus.spring.chap07.controller; public class PageRank { private int rank; private String page; public PageRank() { } public PageRank(int rank, String page) { this.rank = rank; this.page = page; } public int getRank() { return rank; } public String getPage() { return page; } }
PageReportView
package madvirus.spring.chap07.view; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import madvirus.spring.chap07.controller.PageRank; import org.springframework.web.servlet.view.document.AbstractPdfView; import com.lowagie.text.Cell; import com.lowagie.text.Document; import com.lowagie.text.Font; import com.lowagie.text.Paragraph; import com.lowagie.text.Table; import com.lowagie.text.pdf.BaseFont; import com.lowagie.text.pdf.PdfWriter; public class PageReportView extends AbstractPdfView { @SuppressWarnings("unchecked") @Override protected void buildPdfDocument(Map<String, Object> model, Document document, PdfWriter writer, HttpServletRequest request, HttpServletResponse response) throws Exception { List<PageRank> pageRanks = (List<PageRank>) model.get("pageRanks"); Table table = new Table(2, pageRanks.size() + 1); table.setPadding(5); BaseFont bfKorean = BaseFont.createFont( "c:\\windows\\fonts\\batang.ttc,0", BaseFont.IDENTITY_H, BaseFont.EMBEDDED); Font font = new Font(bfKorean); Cell cell = new Cell(new Paragraph("순위", font)); cell.setHeader(true); table.addCell(cell); cell = new Cell(new Paragraph("페이지", font)); table.addCell(cell); table.endHeaders(); for (PageRank rank : pageRanks) { table.addCell(Integer.toString(rank.getRank())); table.addCell(rank.getPage()); } document.add(table); } }
Map형식으로 key 와 value로 빼낸다
테이블을 형성 하고 padding도 주는 옵션도 있다
폰트를 불러와 폰트 처리를 한다
테이블에 내용추가를 for문으로 한다
'JSP > Spring' 카테고리의 다른 글
Spring DB 연동 회원가입 JdbcTemplate (0) | 2012.03.08 |
---|---|
Spring Tiles 레이아웃 (0) | 2012.03.07 |
LocaleChangeInterceptor를 이용한 Locale 변경(국제화) (0) | 2012.03.07 |
LocaleResolver를 이용한 Locale 변경(국제화) (0) | 2012.03.07 |
Spring 커스텀 태그 / 로그인 유효성 체크 (0) | 2012.03.06 |