Замена изображения в существующем PDF‑файле с помощью Java
Contents
[
Hide
]
Используйте либо коллекцию изображений страницы, либо поиск на основе размещения, в зависимости от того, насколько точно вам нужно найти изображение.
Замена изображения по индексу ресурса
- Откройте исходный PDF в объекте Document.
- Получите доступ к ресурсам изображений нужной страницы Page.
- Замените целевой ресурс изображения новым файлом изображения.
- Сохраните обновлённый 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
- Откройте исходный PDF в объекте Документ.
- Создайте ImagePlacementAbsorber и обработайте нужную страницу Страница.
- Получите нужный объект ImagePlacement и замените его новым потоком изображения.
- Сохраните обновлённый PDF Документ.
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());
}
}