Я прочитал все похожие вопросы и ответы, и я все еще застрял, старые вопросы были для старых версий.Замена PDImageXObject другим PDFBOX 2.0.3
Я хочу заменить все изображения в данном 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. Заменить replace_img необходимо перезаписать original_img.
Вы пытались * заменить * еще что-то вроде 'resources.put (xObjectName, replacement_img)' после создания экземпляра 'replacement_img'? – mkl
Да, я забыл. Оно работает. Спасибо @mkl – GrayFox
Хорошо, я сделаю это реальным ответом. – mkl