[java] PDF 파일에서 특정 페이지 회전하기(Java Apache PDFBox 사용)

PDF 파일에서 특정 페이지를 회전해야 하는 경우가 있습니다. 이를 처리하기 위해 Java Apache PDFBox 라이브러리를 사용할 수 있습니다. 이 블로그 포스트에서는 PDF 파일에서 특정 페이지를 회전하는 방법에 대해 알아보겠습니다.

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

PDFBox를 사용하기 위해 Maven 등의 빌드 도구를 사용하여 프로젝트에 PDFBox 라이브러리를 추가해야 합니다. 다음은 Maven을 사용하는 경우 pom.xml 파일에 의존성을 추가하는 예시입니다.

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

2. PDF 페이지 회전하기

PDF 파일에서 특정 페이지를 회전하기 위해서는 다음의 단계를 따라야 합니다.

2.1 PDF 파일 로딩하기

먼저 PDF 파일을 로딩해야 합니다. 다음은 loadPDF 메서드를 사용하여 PDF 파일을 로딩하는 예시입니다.

import org.apache.pdfbox.pdmodel.PDDocument;

public PDDocument loadPDF(String filePath) throws IOException {
    return PDDocument.load(new File(filePath));
}

2.2 특정 페이지 회전하기

다음으로, 로딩한 PDF 파일에서 특정 페이지를 회전해야 합니다. 다음은 rotatePage 메서드를 사용하여 특정 페이지를 회전하는 예시입니다.

import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDDocument;

public void rotatePage(PDDocument document, int pageNumber, int rotation) {
    PDPage page = document.getPage(pageNumber);
    page.setRotation(rotation);
}

위의 예시에서 pageNumber는 회전시킬 페이지의 번호이고, rotation은 회전할 각도입니다. 회전할 각도는 0, 90, 180, 270 중 하나의 값을 가져야 합니다.

2.3 변경된 PDF 저장하기

마지막으로, 변경된 PDF를 저장해야 합니다. 다음은 savePDF 메서드를 사용하여 변경된 PDF를 저장하는 예시입니다.

import org.apache.pdfbox.pdmodel.PDDocument;

public void savePDF(PDDocument document, String outputPath) throws IOException {
    document.save(outputPath);
    document.close();
}

위의 예시에서 outputPath는 저장할 PDF 파일의 경로입니다.

3. 예제 사용법

이제 위에서 작성한 메서드를 활용하여 PDF 파일에서 특정 페이지를 회전해보겠습니다. 다음은 예제 코드입니다.

import org.apache.pdfbox.pdmodel.PDDocument;

import java.io.IOException;

public class PDFRotationExample {

    public static void main(String[] args) throws IOException {
        String inputFilePath = "path/to/input.pdf";
        String outputFilePath = "path/to/output.pdf";
        int pageNumber = 1;
        int rotation = 90;

        PDFRotationExample example = new PDFRotationExample();
        PDDocument document = example.loadPDF(inputFilePath);
        example.rotatePage(document, pageNumber, rotation);
        example.savePDF(document, outputFilePath);

        System.out.println("PDF 페이지 회전이 완료되었습니다.");
    }
}

위의 예제 코드에서는 inputFilePath 변수에 회전할 PDF 파일의 경로를 지정하고, outputFilePath 변수에 저장할 PDF 파일의 경로를 지정합니다. pageNumber 변수에는 회전시킬 페이지의 번호, rotation 변수에는 회전할 각도를 지정합니다. 예제 코드를 실행하면 변경된 PDF 파일이 outputFilePath 경로에 저장됩니다.

4. 결론

이 블로그 포스트에서는 Java Apache PDFBox를 사용하여 PDF 파일에서 특정 페이지를 회전하는 방법에 대해 알아보았습니다. PDF 파일을 로딩하고, 특정 페이지를 회전한 뒤 변경된 PDF 파일을 저장하는 단계를 따라갔습니다. 이를 활용하여 개발하면 PDF 파일에서 필요한 페이지를 쉽게 회전시킬 수 있습니다.