Java를 사용하여 PDF 파일에서 이미지 추출

Aspose.PDF for Java는 직접적인 이미지 리소스 추출 및 배치 기반 필터링을 지원합니다.

인덱스별로 삽입된 이미지 추출

PDF 페이지에서 특정 이미지 리소스를 저장해야 할 때 이 예를 사용하세요.

  1. 원본 PDF Document를 여세요.
  2. 페이지 리소스에서 대상 XImage에 액세스하세요.
  3. 이미지 스트림을 출력 파일에 저장하세요.
public static void extractImage(Path inputFile, Path outputFile) throws Exception {
    try (Document document = new Document(inputFile.toString());
         OutputStream outputImage = Files.newOutputStream(outputFile)) {
        XImage image = document.getPages().get_Item(1).getResources().getImages().get_Item(1);
        image.save(outputImage);
    }
}

특정 페이지 영역에서 이미지 추출

선택한 직사각형 내부에 배치된 이미지만 내보내야 하는 경우 이 예를 사용하세요.

  1. 대상 Rectangle을 정의하고 소스 PDF를 여세요.
  2. ImagePlacementAbsorber를 사용하여 페이지의 이미지 배치를 검사하세요.
  3. 선택한 영역 내에 위치가 맞는 이미지만 저장하세요.
public static void extractImageFromSpecificRegion(Path inputFile, Path outputFile) throws Exception {
    Rectangle rectangle = new Rectangle(0, 0, 590, 590, true);

    try (Document document = new Document(inputFile.toString())) {
        ImagePlacementAbsorber absorber = new ImagePlacementAbsorber();
        document.getPages().get_Item(1).accept(absorber);
        int index = 1;
        for (ImagePlacement imagePlacement : absorber.getImagePlacements()) {
            Point point1 = new Point(imagePlacement.getRectangle().getLLX(), imagePlacement.getRectangle().getLLY());
            Point point2 = new Point(imagePlacement.getRectangle().getURX(), imagePlacement.getRectangle().getURX());
            if (rectangle.contains(point1, true) && rectangle.contains(point2, true)) {
                Path indexedOutputFile = Path.of(outputFile.toString().replace("index", String.valueOf(index)));
                try (OutputStream outputImage = Files.newOutputStream(indexedOutputFile)) {
                    imagePlacement.getImage().save(outputImage);
                }
                index++;
            }
        }
    }
}