Java로 Pdf를 자바

개발세발·2024년 1월 6일

자바로 pdf 다루기

        <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);
          

0개의 댓글