Mengganti gambar dalam file PDF yang ada menggunakan Java

Gunakan koleksi gambar halaman atau pencarian berbasis penempatan tergantung pada seberapa tepat Anda perlu menargetkan gambar.

Mengganti gambar berdasarkan indeks sumber daya

  1. Buka PDF sumber Document.
  2. Akses sumber daya gambar pada Page target.
  3. Ganti sumber daya gambar target dengan file gambar baru.
  4. Simpan PDF yang diperbarui 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());
    }
}

Mengganti gambar menggunakan ImagePlacementAbsorber

  1. Buka PDF sumber Document.
  2. Buat sebuah ImagePlacementAbsorber dan kunjungi Page target.
  3. Dapatkan ImagePlacement target dan ganti dengan aliran gambar baru.
  4. Simpan PDF yang diperbarui 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());
    }
}