카테고리 없음
[Springboot] htmlConverter사용해서 pdf파일 만들기(+한글폰트설정)
321
2021. 7. 29. 09:34
1. 먼저 프론트단에서 head, body 등 코드를 string 형태로 가져온다.
const head = document.head.innerHTML;
const body = document.body.innerHTML;
$('#pdfBtn').click(function(){
$.ajax({
type: "POST",
dataType: 'application/json',
url: "주소~~",
data: {
"head": head,
"body": body,
},
success: function (data) {
console.log("success:", data);
},
error: function (e) {
console.log("error:", e)
}
});
});
2. ttf 파일(폰트파일 - 네이버에서 다운가능) static폴더에 옮기기
3. json로 보낸 컨트롤러에서 데이터 가공
- Controller
//requestParam으로 head body 받아오기
PdfDownload.makepdf(head+body, "새로운 파일 이름.pdf");
- PdfDownloadUtil
//PdfDownload유틸에 만든 makepdf함수
public static void makepdf(String html, String dest) throws IOException, FontFormatException {
String FONT = "src/main/resources/static/NanumGothic.ttf";
ConverterProperties properties = new ConverterProperties();
FontProvider fontProvider = new DefaultFontProvider(false, false, false);
FontProgram fontProgram = FontProgramFactory.createFont(FONT);
fontProvider.addFont(fontProgram);
properties.setFontProvider(fontProvider);
HtmlConverter.convertToPdf(html, new FileOutputStream(dest), properties);
}
HtmlConverter.convertToPdf(스트링 코드 형태, FileOutputStream, 프로퍼티-폰트 여백등 설정);
HtmlConverter.convertToPdf함수에 세 번째 자리에 프로퍼티 들어가는 자리를 대충 읽어서 조금 헤맸다.ㅠㅠ
참고한 블로그 : https://mchch.tistory.com/116