카테고리 없음

[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