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());
    }
}