diff --git a/pav-server/src/main/java/com/palnet/biz/api/bas/flight/controller/BasFlightController.java b/pav-server/src/main/java/com/palnet/biz/api/bas/flight/controller/BasFlightController.java index 821ca9f..f7832a0 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/bas/flight/controller/BasFlightController.java +++ b/pav-server/src/main/java/com/palnet/biz/api/bas/flight/controller/BasFlightController.java @@ -403,7 +403,9 @@ public class BasFlightController { param.put("userAge", 25); param.put("userGender", "M"); - pdfUtils.generatePDF(param); + String htmlContent = pdfUtils.getHtmlToString(param); + + pdfUtils.generatePDF(htmlContent); } diff --git a/pav-server/src/main/java/com/palnet/comn/utils/PdfUtils.java b/pav-server/src/main/java/com/palnet/comn/utils/PdfUtils.java index 22e21d0..536d8ee 100644 --- a/pav-server/src/main/java/com/palnet/comn/utils/PdfUtils.java +++ b/pav-server/src/main/java/com/palnet/comn/utils/PdfUtils.java @@ -43,8 +43,8 @@ public class PdfUtils { private final String FILE_BASE_NAME = "LANNC_PDF.pdf"; - public > void generatePDF(T param){ + public > String getHtmlToString(T param){ // Thymeleaf 방식 html에 입힐 데이터 바인딩 Context context = new Context(); context.setVariable("userName", param.get("userName")); @@ -57,22 +57,30 @@ public class PdfUtils { log.error("htmlContent -> {}", htmlContent); + return htmlContent; + } + + public void generatePDF(String htmlContent){ + // PDF 용지 설정하기 Document pdfDocument = new Document(); - try { + try { PdfWriter writer = PdfWriter.getInstance(pdfDocument, new FileOutputStream(this.FILE_BASE_NAME)); writer.setInitialLeading(12.5f); pdfDocument.open(); CSSResolver cssResolver = new StyleAttrCSSResolver(); + + // CSS // jar변환 시 CSS파일을 못 찾을수도 있어서 InputStream 사용 + // CSS의 색깔은 키워드로 표기 X, #e73a3a 등 16진법으로 표기 해야함 InputStream cssStream = getClass().getClassLoader().getResourceAsStream("static/css/pdf.css"); CssFile cssFile = XMLWorkerHelper.getCSS(cssStream); cssResolver.addCss(cssFile); - // 폰트 + // Font XMLWorkerFontProvider fontProvider = new XMLWorkerFontProvider(XMLWorkerFontProvider.DONTLOOKFORFONTS); fontProvider.register("static/font/NanumGothic.ttf", "NanumGothic"); CssAppliers cssAppliers = new CssAppliersImpl(fontProvider); @@ -92,8 +100,7 @@ public class PdfUtils { XMLWorker xmlWorker = new XMLWorker(cssResolverPipeline, true); XMLParser xmlParser = new XMLParser(xmlWorker, Charset.forName("UTF-8")); - xmlParser.parse(stringReader); - + xmlParser.parse(stringReader); } catch (IOException e) { e.printStackTrace(); } catch (DocumentException e1){ @@ -102,6 +109,7 @@ public class PdfUtils { e2.printStackTrace(); } finally{ + pdfDocument.close(); } diff --git a/pav-server/src/main/resources/static/css/pdf.css b/pav-server/src/main/resources/static/css/pdf.css index 6a89f1d..2567b87 100644 --- a/pav-server/src/main/resources/static/css/pdf.css +++ b/pav-server/src/main/resources/static/css/pdf.css @@ -4,5 +4,9 @@ body{ } p{ - background-color: aquamarine; + background-color: #e73a3a; +} + +div { + background-color: #e73a3a; } \ No newline at end of file diff --git a/pav-server/src/main/resources/templates/official_document.html b/pav-server/src/main/resources/templates/official_document.html index f79021a..ed34dda 100644 --- a/pav-server/src/main/resources/templates/official_document.html +++ b/pav-server/src/main/resources/templates/official_document.html @@ -1,8 +1,12 @@ - - -

Thymeleaf Tutorials

+ + + + + + +

Thymeleaf Tutorials

이름 : [[${userName}]]

나이 : [[${userAge}]]

-

성별 : [[${userGender}]]

+

성별 : [[${userGender}]]

- \ No newline at end of file +