[java] Apache PDFBox로 PDF 파일에 배경색 추가하기

Apache PDFBox는 자바로 작성된 오픈 소스 라이브러리로, PDF 파일을 생성하고 편집하는 기능을 제공합니다. 이번 블로그 포스트에서는 Apache PDFBox를 사용하여 PDF 파일에 배경색을 추가하는 방법에 대해 알아보겠습니다.

1. Apache PDFBox 라이브러리 추가하기

PDF 파일에 배경색을 추가하기 위해 먼저 Apache PDFBox 라이브러리를 프로젝트에 추가해야 합니다. Maven을 사용한다면 pom.xml 파일에 다음 의존성을 추가하세요:

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

2. PDF 파일에 배경색 추가하기

다음은 Apache PDFBox를 사용하여 PDF 파일에 배경색을 추가하는 예제 코드입니다. 이 예제에서는 주어진 색상으로 PDF 페이지 전체를 채우는 기능을 구현합니다.

import java.awt.Color;
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.common.PDRectangle;

public class PDFBackground {
   public static void addBackground(String filePath, Color color) throws IOException {
      PDDocument document = PDDocument.load(new File(filePath));
      for (PDPage page : document.getPages()) {
         // 페이지의 크기를 가져옴
         PDRectangle mediaBox = page.getMediaBox();
         float width = mediaBox.getWidth();
         float height = mediaBox.getHeight();
         
         // 배경색을 설정하여 페이지 전체를 채움
         page.setCropBox(new PDRectangle(width, height));
         page.setMediaBox(new PDRectangle(width, height));
         page.setBleedBox(new PDRectangle(width, height));
         page.setTrimBox(new PDRectangle(width, height));
         page.setArtBox(new PDRectangle(width, height));
         page.setContents(new COSString(""));
         page.setResources(new PDResources());
         page.getResources().setColorSpace(PDDeviceRGB.INSTANCE);
         page.getResources().add(new PDColor(color, deviceRGB));
      }
      
      // 변경된 내용을 저장
      document.save(filePath);
      document.close();
   }

   public static void main(String[] args) {
      String filePath = "경로/파일명.pdf";
      Color backgroundColor = Color.YELLOW;
      
      try {
         addBackground(filePath, backgroundColor);
         System.out.println("배경색이 성공적으로 추가되었습니다.");
      } catch (IOException e) {
         System.err.println("배경색 추가 중 오류가 발생하였습니다: " + e.getMessage());
      }
   }
}

위의 코드에서 addBackground 메서드는 주어진 파일 경로의 PDF 파일을 열고 각 페이지에 배경색을 추가합니다. 메서드의 두 번째 매개변수로는 추가할 배경색을 지정할 수 있습니다.

3. 실행 결과 확인하기

위의 예제 코드를 실행하면 지정한 PDF 파일의 모든 페이지에 배경색이 추가됩니다. 이를 확인하기 위해 예제 코드의 main 메서드를 실행하세요. 파일 경로와 배경색을 적절히 설정하면, 콘솔에 “배경색이 성공적으로 추가되었습니다.”라는 메시지가 출력될 것입니다.

결론

Apache PDFBox를 사용하면 쉽게 PDF 파일에 배경색을 추가할 수 있습니다. 이를 통해 더욱 풍부한 형식의 문서를 생성하거나, 기존의 문서에 배경을 넣어 강조할 수 있습니다. 참고 문서에는 PDFBox의 다양한 기능과 예제 코드가 있으니, 필요에 따라 해당 문서를 참고하시기 바랍니다.

참고 문서