SPRING
spring html내용으로 pdf 생성, html to pdf
규루리
2025. 3. 19. 11:09
spring html을 pdf로 생성
spring 또는 전자정부프레임워크(egovFramework)에서 html을 pdf로 만드는 방법에 대해 설명하겠습니다.
1. iText 의존성 추가
Maven을 사용하는 경우 pom.xml에 다음 의존성을 추가합니다
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13.4</version>
</dependency>
<dependency>
<groupId>com.itextpdf.tool</groupId>
<artifactId>xmlworker</artifactId>
<version>5.5.13.4</version>
</dependency>
2. Controller
html을 받아 pdf로 변경하는 컨트롤러를 생성합니다.
public class HtmlToPdfConverter {
@RequestMapping(value="/htmlToPdf.do")
public void convertHtmlToPdf(@RequestParam("htmlContent") String htmlContent, HttpServletResponse response) throws IOException, DocumentException
{
String decodedHTMLContent = StringEscapeUtils.unescapeHtml(htmlContent);
response.setContentType("application/pdf");
response.setHeader("Content-Disposition","attachment; filename=pdf.pdf");
OutputStream out = response.getOutputStream();
Document document = new Document(PageSize.A4);
try{
PdfWriter writer = PdfWriter.getInstance(document, out);
document.open();
XMLWorkerHelper.getInstance().parseXhtml(writer, document, new StringReader(decodedHTMLContent));
} catch(Exception e){
e.printStackTrace();
} finally {
document.close();
out.close();
}
}
}
3. HTML 전송폼 만들기
pdf로 만들 html 전송 form을 생성합니다. <html> <head> </head> <body> </body> </html> 필수로 넣어주세요.
<html>
<head>
<meta charset="UTF-8"/>
</head>
<body>
<textarea name="htmlContent">
<html>
<head>
<meta charset="UTF-8"/>
</head>
<body>
<h1>Subject</h1>
<p>text1</p>
<p>text2</p>
</body>
</html>
</textarea>
</body>
</html>
4. 결과화면
오우..하다보니 한글이 안 되는걸 발견했네요. 한글용으로도 한번 체크를 해봐야겠어요.

728x90
반응형