使用 Java 替换现有 PDF 文件中的图像
Contents
[
Hide
]
根据您需要定位图像的精确程度,可使用页面图像集合或基于位置的搜索。
通过资源索引替换图像
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 Document。
- 创建一个 ImagePlacementAbsorber 并访问目标 Page。
- 获取目标 ImagePlacement 并使用新的图像流替换它。
- 保存更新后的 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());
}
}