[java] iText 라이브러리와 폰트 처리

웹 애플리케이션이나 모바일 앱에서 PDF를 생성하거나 수정해야 하는 경우가 있습니다. 그때 iText 라이브러리를 사용하면 간편하게 PDF를 다룰 수 있습니다. 그러나 때때로 포함된 폰트가 원하는대로 출력되지 않는 문제가 발생할 수 있습니다.

폰트 처리 문제

iText로 PDF를 생성하거나 편집할 때, 특히 아시아 언어 (예: 한국어, 중국어, 일본어 등)의 경우 폰트 처리에 주의해야 합니다. 기본 폰트를 사용하면 문자가 깨지거나 원하는 폰트로 표시되지 않을 수 있습니다.

커스텀 폰트 추가

커스텀 폰트를 추가하여 PDF에 원하는 폰트를 적용할 수 있습니다. 아래는 iText 7으로 한국어 폰트를 사용하는 간단한 예제입니다.

import com.itextpdf.io.font.PdfEncodings;
import com.itextpdf.io.font.constants.StandardFonts;
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;

public class KoreanFontExample {
    public static void main(String[] args) throws Exception {
        PdfDocument pdf = new PdfDocument(new PdfWriter("korean_font_example.pdf"));
        Document document = new Document(pdf);

        PdfFont koreanFont = PdfFontFactory.createFont("NanumGothic.ttf", PdfEncodings.IDENTITY_H, true);
        document.setFont(koreanFont);

        document.add(new Paragraph("안녕하세요, iText로 PDF에 한국어 폰트를 적용하는 예제입니다."));

        document.close();
    }
}

결론

iText 라이브러리를 사용하는 동안 폰트 처리에 신경써야 합니다. 필요에 따라 커스텀 폰트를 추가하여 원하는 폰트를 사용할 수 있습니다. 이는 다국어 PDF 작업에 있어서 중요한 고려 사항입니다.


참고 자료:

의견이 있거나 추가 문제에 대해 더 자세히 알고 싶으시면 언제든지 물어보십시오.