目前我正在尝试加载现有文档,删除所有图像,然后重新添加它们。如果有人需要更多关于我为什么这样做的细节,我会很乐意提供它。
我遇到的问题是当我重新添加图像时,标签显示“r1:embed”而不是“r:embed”来列出blip Id。这导致在文档中显示“无法显示图片”消息。在进入并修改document.xml以将“r1:embed”的所有实例替换为“r:embed”后,图片显示就好了。
我假设这是因为删除图像后,document.xml.rels文件中的关系仍然存在。当图像重新添加时,它使用相同的图像和rIds,但标签将模式更改为“r1”而不是将其保持为“r”
任何帮助都将不胜感激。
修改
这是我用来删除图片的代码:
FileInputStream input = new FileInputStream(file);
XWPFDocument document = new XWPFDocument(input);
List<IBodyElement> elements = document.getBodyElements();
for (IBodyElement element : elements) {
if (element instanceof XWPFParagraph) {
XWPFParagraph paragraph = (XWPFParagraph) element;
List<XWPFRun> runs = paragraph.getRuns();
for (XWPFRun run : runs) {
while (run.getCTR().getDrawingList().size() > 0) {
run.getCTR().removeDrawing(0);
}
}
}
}
我还使用了“removePict()”方法,但是没有从文档中删除图像。我还尝试将removePict()和removeDrawing()与相应的while循环一起使用,但没有成功将它们完全从关系文件中删除。
谢谢!