diff --git a/java/api/NanumGothicLight.ttf b/java/api/NanumGothicLight.ttf new file mode 100644 index 00000000..5c875b15 Binary files /dev/null and b/java/api/NanumGothicLight.ttf differ diff --git a/java/api/book_info.pdf b/java/api/book_info.pdf new file mode 100644 index 00000000..eb32b271 Binary files /dev/null and b/java/api/book_info.pdf differ diff --git a/java/api/build.gradle b/java/api/build.gradle index c0363657..fbb7382b 100644 --- a/java/api/build.gradle +++ b/java/api/build.gradle @@ -11,11 +11,15 @@ repositories { dependencies { implementation 'org.jsoup:jsoup:1.16.1' + implementation 'com.google.code.gson:gson:2.10.1' + implementation 'org.apache.poi:poi:5.2.3' implementation 'org.apache.poi:poi-ooxml:5.2.3' - implementation 'org.apache.logging.log4j:log4j-core:2.20.0' + testImplementation 'org.slf4j:slf4j-simple:2.0.7' + + implementation 'com.itextpdf:itext7-core:8.0.0' testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1' diff --git a/java/api/src/main/java/itext/BookInfoToPDF.java b/java/api/src/main/java/itext/BookInfoToPDF.java new file mode 100644 index 00000000..b16c7d4e --- /dev/null +++ b/java/api/src/main/java/itext/BookInfoToPDF.java @@ -0,0 +1,48 @@ +package itext; + +import com.itextpdf.io.font.PdfEncodings; +import com.itextpdf.kernel.font.PdfFont; +import com.itextpdf.kernel.font.PdfFontFactory; +import com.itextpdf.kernel.pdf.PdfDocument; +import com.itextpdf.kernel.pdf.PdfWriter; +import com.itextpdf.layout.Document; +import com.itextpdf.layout.element.Paragraph; + +import java.io.FileOutputStream; +import java.io.IOException; +import java.time.Year; +import java.util.HashMap; +import java.util.Map; + +public class BookInfoToPDF { + + public static void main(String[] args) { + Map bookInfo = new HashMap<>(); + bookInfo.put("title", "자바"); + bookInfo.put("author", "홍길동"); + bookInfo.put("publisher", "출판사"); + bookInfo.put("year", String.valueOf(Year.now().getValue())); + bookInfo.put("price", "25000"); + bookInfo.put("pages", "400"); + + try { + PdfWriter writer = new PdfWriter(new FileOutputStream("book_info.pdf")); + PdfDocument pdf = new PdfDocument(writer); + Document document = new Document(pdf); + + PdfFont font = PdfFontFactory.createFont("NanumGothicLight.ttf", PdfEncodings.IDENTITY_H, PdfFontFactory.EmbeddingStrategy.FORCE_EMBEDDED); + document.setFont(font); + + for (String key : bookInfo.keySet()) { + Paragraph paragraph = new Paragraph(key + ": " + bookInfo.get(key)); + document.add(paragraph); + } + + document.close(); + + System.out.println("pdf 파일 생성 완료"); + } catch (IOException e) { + e.printStackTrace(); + } + } +}