Substituir imagem em arquivo PDF existente usando Java
Contents
[
Hide
]
Use a coleção de imagens da página ou a busca baseada em posicionamento, dependendo de quão precisamente você precisa direcionar a imagem.
Substituir uma imagem por índice de recurso
- Abra o PDF de origem em um objeto Document.
- Acesse os recursos de imagem no destino Page.
- Substitua o recurso de imagem de destino pelo novo arquivo de imagem.
- Salve o PDF atualizado 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());
}
}
Substituir uma imagem usando ImagePlacementAbsorber
- Abra o PDF de origem em um objeto Document.
- Crie um ImagePlacementAbsorber e visite o destino Page.
- Obtenha o destino ImagePlacement e substitua-o pelo novo fluxo de imagem.
- Salve o PDF atualizado 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());
}
}