[java] PDF 파일을 다른 형식으로 변환하기(Java Apache PDFBox 사용)

PDF 파일은 문서를 공유하고 저장하는 데 매우 편리한 형식입니다. 그러나 때로는 PDF 파일을 다른 형식으로 변환해야 할 수도 있습니다. 이 글에서는 Java Apache PDFBox 라이브러리를 사용하여 PDF 파일을 다른 형식으로 변환하는 방법을 알아보겠습니다.

준비물

PDF 파일을 텍스트로 변환하기

PDF 파일을 텍스트 형식으로 변환하려면 다음과 같은 단계를 따르세요.

  1. Apache PDFBox 라이브러리를 프로젝트에 추가하세요.
  2. 변환할 PDF 파일을 지정하세요.
  3. PDFTextStripper 클래스를 사용하여 텍스트를 추출하세요.
  4. 추출된 텍스트를 원하는 형식으로 저장하세요.

다음은 PDF 파일을 텍스트로 변환하는 예제 코드입니다.

import java.io.File;
import java.io.IOException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;

public class PDFToTextConverter {
    public static void main(String[] args) {
        try {
            // 변환할 PDF 파일 경로 지정
            File file = new File("경로/파일명.pdf");
            
            // PDF 파일 열기
            PDDocument document = PDDocument.load(file);
            
            // 텍스트 추출
            PDFTextStripper textStripper = new PDFTextStripper();
            String text = textStripper.getText(document);
            
            // 추출된 텍스트 저장
            File output = new File("경로/출력파일명.txt");
            FileUtils.writeStringToFile(output, text, "UTF-8");
            
            // PDF 파일 닫기
            document.close();
            
            System.out.println("PDF 파일이 텍스트로 변환되었습니다.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

PDF 파일을 이미지로 변환하기

PDF 파일을 이미지 형식으로 변환하려면 다음과 같은 단계를 따르세요.

  1. Apache PDFBox 라이브러리를 프로젝트에 추가하세요.
  2. 변환할 PDF 파일을 지정하세요.
  3. PDFRenderer 클래스를 사용하여 각 페이지를 이미지로 렌더링하세요.
  4. 렌더링된 이미지를 원하는 형식으로 저장하세요.

다음은 PDF 파일을 이미지로 변환하는 예제 코드입니다.

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;

public class PDFToImageConverter {
    public static void main(String[] args) {
        try {
            // 변환할 PDF 파일 경로 지정
            File file = new File("경로/파일명.pdf");
            
            // PDF 파일 열기
            PDDocument document = PDDocument.load(file);
            
            // PDF 파일을 이미지로 변환
            PDFRenderer pdfRenderer = new PDFRenderer(document);
            for (int pageNumber = 0; pageNumber < document.getNumberOfPages(); pageNumber++) {
                BufferedImage image = pdfRenderer.renderImageWithDPI(pageNumber, 300); // DPI 설정
                // 이미지 저장
                ImageIO.write(image, "PNG", new File("경로/출력파일명_" + (pageNumber + 1) + ".png"));
            }
            
            // PDF 파일 닫기
            document.close();
            
            System.out.println("PDF 파일이 이미지로 변환되었습니다.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

이제 PDF 파일을 다른 형식으로 변환하는 방법을 알았습니다. Apache PDFBox를 사용하면 텍스트나 이미지 외에도 다른 형식으로 변환하는 것도 가능합니다. 자세한 내용은 Apache PDFBox 문서를 참고하세요.

Happy coding!