PDF and Excel

Dev.Hammy·2024년 4월 8일
0

Spring은 PDF 및 Excel 스프레드시트를 포함하여 HTML 이외의 출력을 반환하는 방법을 제공합니다. 이 섹션에서는 이러한 기능을 사용하는 방법을 설명합니다.

Introduction to Document Views

HTML 페이지가 항상 사용자가 모델 출력을 보는 가장 좋은 방법은 아니며 Spring을 사용하면 모델 데이터에서 동적으로 PDF 문서나 Excel 스프레드시트를 간단하게 생성할 수 있습니다. 문서는 보기이며 올바른 콘텐츠 유형으로 서버에서 스트리밍되어 클라이언트 PC가 응답으로 스프레드시트 또는 PDF 뷰어 응용 프로그램을 실행할 수 있도록 합니다.

Excel 보기를 사용하려면 클래스 경로에 Apache POI 라이브러리를 추가해야 합니다. PDF를 생성하려면 OpenPDF 라이브러리를 추가하는 것이 좋습니다.

[Note]
가능하다면 기본 문서 생성 라이브러리의 최신 버전을 사용해야 합니다. 특히 OpenPDF는 적극적으로 유지 관리되고 신뢰할 수 없는 PDF 콘텐츠에 대한 중요한 취약점을 수정하므로 오래된 원본 iText 2.1.7 대신 OpenPDF(예: OpenPDF 1.2.12)를 강력히 권장합니다.

PDF Views

단어 목록에 대한 간단한 PDF 보기는 다음 예제와 같이 org.springframework.web.servlet.view.document.AbstractPdfView를 확장하고 buildPdfDocument() 메서드를 구현할 수 있습니다.

public class PdfWordList extends AbstractPdfView {

	protected void buildPdfDocument(Map<String, Object> model, Document doc, PdfWriter writer,
			HttpServletRequest request, HttpServletResponse response) throws Exception {

		List<String> words = (List<String>) model.get("wordList");
		for (String word : words) {
			doc.add(new Paragraph(word));
		}
	}
}

컨트롤러는 외부 뷰 정의(이름으로 참조)에서 또는 핸들러 메서드의 View 인스턴스로 이러한 뷰를 반환할 수 있습니다.

Excel Views

Spring Framework 4.2부터 org.springframework.web.servlet.view.document.AbstractXlsView가 Excel 뷰의 기본 클래스로 제공됩니다. 이는 오래된 AbstractExcelView 클래스를 대체하는 특수 하위 클래스(AbstractXlsxViewAbstractXlsxStreamingView)가 있는 Apache POI를 기반으로 합니다.

프로그래밍 모델은 AbstractPdfView와 비슷합니다. buildExcelDocument()가 중앙 템플릿 메서드이고 컨트롤러가 외부 정의(by name)에서 이러한 뷰를 반환하거나 핸들러 메서드에서 View 인스턴스로 반환할 수 있다는 점입니다.

0개의 댓글