[java] PDF 파일에서 이미지 뒤집기 및 회전하기(Java Apache PDFBox 사용)

PDF 파일은 문서와 이미지를 포함하는 다목적 파일 형식입니다. 때때로 PDF 파일에서 이미지를 처리하고 수정해야 할 수도 있습니다. 이 튜토리얼에서는 Java Apache PDFBox 라이브러리를 사용하여 PDF 파일에서 이미지를 뒤집고 회전하는 방법을 알아보겠습니다.

Apache PDFBox 라이브러리 가져오기

먼저 Apache PDFBox 라이브러리를 다운로드하고 프로젝트에 추가해야 합니다. 다음과 같은 Gradle 의존성을 사용하여 Apache PDFBox 라이브러리를 가져올 수 있습니다:

dependencies {
    implementation 'org.apache.pdfbox:pdfbox:2.0.27'
}

PDF 파일에서 이미지 뒤집기

PDF 파일에서 이미지를 뒤집기 위해 다음 코드를 사용할 수 있습니다:

import org.apache.pdfbox.Loader;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDResources;
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;

import java.io.File;
import java.io.IOException;

public class ImageFlipper {
    public static void main(String[] args) throws IOException {
        // PDF 파일 로드
        PDDocument document = Loader.loadPDF(new File("input.pdf"));

        // 페이지별로 이미지 뒤집기
        for (PDPage page : document.getPages()) {
            PDResources resources = page.getResources();
            for (COSName image : resources.getXObjectNames()) {
                if (resources.isImageXObject(image)) {
                    PDImageXObject imageXObject = (PDImageXObject) resources.getXObject(image);
                    imageXObject.setFlipVertical(true);
                }
            }
        }

        // 수정된 내용 저장
        document.save("output.pdf");

        // 메모리 해제
        document.close();
    }
}

위의 코드에서 input.pdf 파일을 로드한 후, 각 페이지에서 이미지를 뒤집습니다. 이미지 객체를 얻은 후 setFlipVertical(true) 메서드를 사용하여 이미지를 수직으로 뒤집습니다. 최종적으로 수정된 내용을 output.pdf 파일에 저장하고, 사용이 끝난 후에는 메모리를 해제합니다.

PDF 파일에서 이미지 회전하기

PDF 파일에서 이미지를 회전하기 위해 다음 코드를 사용할 수 있습니다:

import org.apache.pdfbox.Loader;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDResources;
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;

import java.io.File;
import java.io.IOException;

public class ImageRotator {
    public static void main(String[] args) throws IOException {
        // PDF 파일 로드
        PDDocument document = Loader.loadPDF(new File("input.pdf"));

        // 페이지별로 이미지 회전
        for (PDPage page : document.getPages()) {
            PDResources resources = page.getResources();
            for (COSName image : resources.getXObjectNames()) {
                if (resources.isImageXObject(image)) {
                    PDImageXObject imageXObject = (PDImageXObject) resources.getXObject(image);
                    imageXObject.setRotation(90);
                }
            }
        }

        // 수정된 내용 저장
        document.save("output.pdf");

        // 메모리 해제
        document.close();
    }
}

위의 코드에서 input.pdf 파일을 로드한 후, 각 페이지에서 이미지를 회전시킵니다. 이미지 객체를 얻은 후 setRotation(90) 메서드를 사용하여 이미지를 90도 회전합니다. 최종적으로 수정된 내용을 output.pdf 파일에 저장하고, 사용이 끝난 후에는 메모리를 해제합니다.

결론

Java Apache PDFBox를 사용하여 PDF 파일에서 이미지를 뒤집고 회전하는 방법을 살펴보았습니다. 이를 통해 PDF 파일을 처리하고 수정할 수 있으며, 다른 이미지 관련 작업도 수행할 수 있습니다.

더 많은 정보를 얻으려면 Apache PDFBox 공식 웹사이트를 참조하세요.