我已经阅读了所有类似的问题和答案,但我仍然坚持旧版本的旧问题。
我想用外部图像替换给定PDF中的所有图像。
这是我到目前为止所做的:
for(int a=0;a<doc.getNumberOfPages().size();a++){
PDPage p = doc.getPage(a);
PDResources resources = p.getResources();
for (COSName xObjectName : resources.getXObjectNames()) {
PDXObject xObject = resources.getXObject(xObjectName);
if (xObject instanceof PDImageXObject) {
PDImageXObject original_img = ((PDImageXObject) xObject);
PDImageXObject replacement_img = PDImageXObject.createFromFile(f.getImages().get(a), doc);
}
}
}
所以,我有2个PDImageXObjects名称original_img和replacement_img。 Replacement_img必须覆盖original_img。
答案 0 :(得分:1)
要通过新图像替换旧图像,必须将有问题的资源设置为新图像,即
resources.put(xObjectName, replacement_img);
在OP代码中实例化replacement_img
之后。