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 |
Tags
- 생성자
- JSP
- 어노테이션
- 예외처리
- 안드로이드
- Graphic
- 기본
- Java
- oracle
- 클래스
- Spring
- AWT
- 메소드
- JavaScript
- 국제화
- 오버로딩
- OGNL
- Android
- 메서드
- struts2
- 배열
- 에러페이지
- Eclips
- HTML
- paint
- mybatis
- 이클립스
- Menu
- layout
- 전화걸기
Archives
- Today
- Total
note
AbstractPdfView 클래스를 이용한 PDF 다운로드 구현(PDF 만들기) 본문
dispatcherNonHtml-servlet.xml
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 pageRanks = new ArrayList();
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 model,
Document document, PdfWriter writer, HttpServletRequest request,
HttpServletResponse response) throws Exception {
List pageRanks = (List) 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 |