[java] Java Apache PDFBox로 이미지 파일을 PDF에 삽입하기

이번에는 Java Apache PDFBox를 사용하여 이미지 파일을 PDF에 삽입하는 방법을 알아보겠습니다.

필요한 라이브러리 설치

먼저, 프로젝트에 Apache PDFBox 라이브러리를 추가해야 합니다. 이를 위해 Maven을 사용한다면, pom.xml 파일에 아래의 의존성을 추가해주세요.

<dependencies>
    <dependency>
        <groupId>org.apache.pdfbox</groupId>
        <artifactId>pdfbox</artifactId>
        <version>2.0.24</version>
    </dependency>
</dependencies>

Maven을 사용하지 않는다면, Apache PDFBox 공식 웹사이트에서 라이브러리를 다운로드하여 프로젝트에 추가해야 합니다.

이미지 파일을 PDF에 삽입하기

이제 Java 코드를 작성하여 이미지 파일을 PDF에 삽입해보겠습니다.

import java.io.File;
import java.io.IOException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;

public class ImageToPdfConverter {
    public static void main(String[] args) {
        try {
            // PDF 문서 생성
            PDDocument document = new PDDocument();
            PDPage page = new PDPage();
            document.addPage(page);

            // 이미지 파일 로드
            File imageFile = new File("path/to/image.jpg");
            PDImageXObject image = PDImageXObject.createFromFileByContent(imageFile, document);

            // 이미지를 페이지에 삽입
            PDPageContentStream contentStream = new PDPageContentStream(document, page);
            contentStream.drawImage(image, 100, 100); // 이미지 좌표 설정
            contentStream.close();

            // PDF 저장
            document.save("path/to/output.pdf");
            document.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

코드 설명

  1. 먼저, PDDocument 클래스를 사용하여 새로운 PDF 문서를 생성합니다.
  2. PDPage 클래스를 사용하여 새로운 페이지를 생성하고, document.addPage() 메소드를 사용하여 문서에 페이지를 추가합니다.
  3. 이미지 파일을 로드하기 위해 PDImageXObject.createFromFileByContent() 메소드를 사용합니다. 여기서 imageFile에는 삽입하려는 이미지 파일의 경로를 지정해야 합니다.
  4. PDPageContentStream 클래스를 사용하여 페이지에 이미지를 삽입합니다. drawImage() 메소드를 사용하여 이미지의 좌표를 설정할 수 있습니다.
  5. 작업이 끝나면, document.save() 메소드를 사용하여 PDF를 저장하고, document.close() 메소드를 사용하여 문서를 닫습니다.

결론

이렇게 Java Apache PDFBox를 사용하여 이미지 파일을 PDF에 삽입하는 방법을 알아보았습니다. PDFBox 라이브러리의 다른 기능들도 함께 살펴보시면 더욱 다양한 작업을 수행할 수 있습니다.