[java] PDF 파일에서 특정 글꼴 추출하기(Java Apache PDFBox 사용)

PDF 파일에서 텍스트를 추출하는 작업은 종종 필요한 일입니다. 이때 PDF 파일에 있는 특정 글꼴을 추출해야 할 때는 어떻게 해야 할까요? 이번 포스트에서는 Java Apache PDFBox 라이브러리를 사용하여 PDF 파일에서 특정 글꼴을 추출하는 방법을 알아보겠습니다.

필요한 라이브러리 가져오기

PDFBox는 Maven을 통해 간단하게 가져올 수 있습니다. 프로젝트의 pom.xml에 다음 의존성을 추가하세요.

<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox</artifactId>
    <version>2.0.27</version>
</dependency>

특정 글꼴 추출하기

다음은 PDF 파일에서 특정 글꼴을 추출하는 Java 코드의 예입니다.

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.font.PDFont;
import org.apache.pdfbox.text.PDFTextStripper;

import java.io.File;
import java.io.IOException;
import java.util.HashSet;
import java.util.Set;

public class FontExtractor {

    public Set<String> extractFontsFromFile(String filePath) throws IOException {
        Set<String> fontNames = new HashSet<>();

        File file = new File(filePath);
        PDDocument document = PDDocument.load(file);

        for (PDPage page : document.getPages()) {
            PDFont[] fonts = page.getResources().getFonts();
            for (PDFont font : fonts) {
                fontNames.add(font.getName());
            }
        }

        document.close();

        return fontNames;
    }

    public static void main(String[] args) {
        FontExtractor fontExtractor = new FontExtractor();
        try {
            String filePath = "path_to_pdf_file.pdf";
            Set<String> fonts = fontExtractor.extractFontsFromFile(filePath);
            for (String font : fonts) {
                System.out.println(font);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 코드는 주어진 filePath에 위치한 PDF 파일을 열고, 각 페이지에서 사용된 글꼴을 추출합니다. 추출된 글꼴은 Set 자료구조에 저장되어 반환됩니다.

위의 코드는 예제로서 주어진 PDF 파일에서 모든 글꼴을 추출하여 콘솔에 출력합니다. 사용할 PDF 파일의 경로를 filePath 변수에 지정한 후 실행해보세요.

결론

Java Apache PDFBox를 사용하면 PDF 파일에서 특정 글꼴을 추출하는 작업을 간편하게 수행할 수 있습니다. 이를 통해 텍스트 데이터를 분석하거나 폰트 관련 작업에 도움을 받을 수 있습니다.

더 자세한 정보와 사용 예제는 PDFBox 공식 문서에서 확인할 수 있습니다.