Loading...
Spring Framework Reference Documentation 7.0.2의 PDF and Excel의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
Spring은 HTML 이외의 PDF 및 Excel 스프레드시트를 포함한 output을 반환하는 방법을 제공합니다. 이 섹션에서는 해당 기능을 사용하는 방법을 설명합니다.
Spring Framework 7.0부터
org.springframework.web.servlet.view.document<br>package의 view class들은 deprecated되었습니다. 대신, library들이 이 기존 코드를<br>adapt하여 자신들의*Viewtype으로 support를 제공할 수 있습니다.<br>대안으로, 애플리케이션들은 web handler에서 직접 rendering을 수행할 수 있습니다.
HTML page가 항상 사용자가 model output을 보기 위한 최선의 방법은 아니며, Spring은 model data로부터 동적으로 PDF document나 Excel 스프레드시트를 생성하는 것을 간단하게 만들어 줍니다.
document는 view이며 올바른 content type과 함께 서버에서 streaming되어, (바람직하게는) client PC가 그에 반응하여 스프레드시트 또는 PDF viewer 애플리케이션을 실행할 수 있게 합니다.
Excel view를 사용하려면 Apache POI library를 classpath에 추가해야 합니다. PDF 생성을 위해서는 (가능하면) OpenPDF library를 추가해야 합니다.
가능하다면, underlying document-generation library의 최신 버전을 사용해야 합니다.<br>특히, 오래된 original iText 2.1.7 대신 OpenPDF(예: OpenPDF 1.2.12)를 강력히<br>권장합니다. OpenPDF는 적극적으로 유지 관리되고 있으며, 신뢰할 수 없는 PDF<br>content에 대한 중요한 취약점을 수정합니다.
word list에 대한 간단한 PDF view는
org.springframework.web.servlet.view.document.AbstractPdfView를 extends하고
다음 예제와 같이 buildPdfDocument() 메서드를 구현할 수 있습니다:
1public class PdfWordList extends AbstractPdfView { 2 3 protected void buildPdfDocument(Map<String, Object> model, Document doc, PdfWriter writer, 4 HttpServletRequest request, HttpServletResponse response) throws Exception { 5 6 List<String> words = (List<String>) model.get("wordList"); 7 for (String word : words) { 8 doc.add(new Paragraph(word)); 9 } 10 } 11}
1class PdfWordList : AbstractPdfView() { 2 3 override fun buildPdfDocument(model: Map<String, Any>, doc: Document, writer: PdfWriter, 4 request: HttpServletRequest, response: HttpServletResponse) { 5 6 val words = model["wordList"] as List<String> 7 for (word in words) { 8 doc.add(Paragraph(word)) 9 } 10 } 11}
controller는 external view definition(이름으로 참조)에서
또는 handler 메서드로부터 View 인스턴스로 이러한 view를 반환할 수 있습니다.
Spring Framework 4.2부터,
org.springframework.web.servlet.view.document.AbstractXlsView가 Excel view를 위한 base
class로 제공됩니다. 이는 Apache POI를 기반으로 하며, 오래된 AbstractExcelView class를
대체하는 특수화된 subclass(AbstractXlsxView 및 AbstractXlsxStreamingView)를 포함합니다.
프로그래밍 모델은 AbstractPdfView와 유사하며, buildExcelDocument()가
중앙 템플릿 메서드이고 controller는 external definition(이름으로) 또는 handler
메서드로부터 View 인스턴스로 이러한 view를 반환할 수 있습니다.
RSS and Atom
Jackson