<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext7-core</artifactId>
<version>7.1.18</version>
</dependency>
package javaToPdf;
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.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.time.Year;
import java.util.HashMap;
public class BookInfoToPdf {
public static void main(String[] args) throws FileNotFoundException {
HashMap<String, String> bookInfo = new HashMap<>();
bookInfo.put("title", "어린 왕자");
bookInfo.put("author", "생텍쥐페리");
bookInfo.put("publisher", "민음사");
bookInfo.put("year", String.valueOf(Year.now().getValue()));
bookInfo.put("price", "15000");
bookInfo.put("pages", "150");
try{
//pdf 생성을 위한 pdfwriter 생성
PdfWriter writer = new PdfWriter(new FileOutputStream("bookInfo.pdf"));
// pdf
PdfDocument pdf = new PdfDocument(writer);
//Document 객체 생성
Document document = new Document(pdf);
//
PdfFont font = PdfFontFactory.createFont("한국외대체L.TTF", PdfEncodings.IDENTITY_H, true);
document.setFont(font);
for(String key:bookInfo.keySet()){
Paragraph paragraph = new Paragraph(key+": "+ bookInfo.get(key));
document.add(paragraph);
}
document.close();
System.out.println("파일이 생성되었습니다.");
}catch (IOException e) {
throw new RuntimeException(e);
}
}
}
HashMap의 형태 key:value로 데이터를 저장.
FileOutPutStream은 파일 객체를 따로 생성하지 않아도 파일이 생성된다.
PdfWriter writer = new PdfWriter(new FileOutputStream("bookInfo.pdf"));
pdf 파일을 만드는 데 중요한 부분. PdfWriter 객체를 만들어 새로운 파일을 생성해주고, PdfDocument 객체에 넣어준 다음, 이를 Document 객체에 넣어서 문서를 만들어준다.
//pdf 생성을 위한 pdfwriter 생성
PdfWriter writer = new PdfWriter(new FileOutputStream("bookInfo.pdf"));
// pdf
PdfDocument pdf = new PdfDocument(writer);
//Document 객체 생성
Document document = new Document(pdf);