Java를 사용하여 기존 PDF 파일의 이미지 바꾸기

이미지를 얼마나 정확하게 타겟팅해야 하는지에 따라 페이지 이미지 컬렉션 또는 배치 기반 검색을 사용하세요.

리소스 인덱스로 이미지 교체

  1. 원본 PDF Document를 여세요.
  2. 대상 Page의 이미지 리소스에 접근하세요.
  3. 대상 이미지 리소스를 새 이미지 파일로 바꾸세요.
  4. 업데이트된 PDF Document를 저장하세요.
public static void replaceImage(Path inputFile, Path imageFile, Path outputFile) throws Exception {
    try (Document document = new Document(inputFile.toString());
         InputStream imageStream = Files.newInputStream(imageFile)) {
        document.getPages().get_Item(1).getResources().getImages().replace(1, imageStream);
        document.save(outputFile.toString());
    }
}

ImagePlacementAbsorber를 사용하여 이미지 교체

  1. 원본 PDF Document를 여세요.
  2. ImagePlacementAbsorber를 만들고 대상 Page를 방문하세요.
  3. 대상 ImagePlacement을 가져와 새 이미지 스트림으로 바꾸세요.
  4. 업데이트된 PDF Document를 저장하세요.
public static void replaceImageWithAbsorber(Path inputFile, Path imageFile, Path outputFile) throws Exception {
    try (Document document = new Document(inputFile.toString())) {
        ImagePlacementAbsorber absorber = new ImagePlacementAbsorber();
        document.getPages().get_Item(1).accept(absorber);

        if (absorber.getImagePlacements().size() > 0) {
            ImagePlacement imagePlacement = absorber.getImagePlacements().get_Item(1);
            try (InputStream imageStream = Files.newInputStream(imageFile)) {
                imagePlacement.replace(imageStream);
            }
        }

        document.save(outputFile.toString());
    }
}