Java 如何完全使用POI Word删除关系?

Java 如何完全使用POI Word删除关系?,java,image,apache-poi,relationship,xwpf,Java,Image,Apache Poi,Relationship,Xwpf,目前,我正在尝试加载现有文档,删除所有图像,然后重新添加它们。如果有人需要我为什么这么做的更多细节,我很乐意提供 我面临的问题是,当我重新添加图像时,标签显示“r1:embed”而不是“r:embed”以列出光点Id。这会导致文档中显示“图片无法显示”消息。在进入并修改document.xml以将“r1:embed”的所有实例替换为“r:embed”之后,图片显示得很好 我假设这是因为删除图像后,document.xml.rels文件中仍然存在这种关系。当图像被添加回时,它使用相同的图像和RID

目前,我正在尝试加载现有文档,删除所有图像,然后重新添加它们。如果有人需要我为什么这么做的更多细节,我很乐意提供

我面临的问题是,当我重新添加图像时,标签显示“r1:embed”而不是“r:embed”以列出光点Id。这会导致文档中显示“图片无法显示”消息。在进入并修改document.xml以将“r1:embed”的所有实例替换为“r:embed”之后,图片显示得很好

我假设这是因为删除图像后,document.xml.rels文件中仍然存在这种关系。当图像被添加回时,它使用相同的图像和RID,但是标记将模式更改为“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);
                }
            }
        }
    }
FileInputStream输入=新的FileInputStream(文件);
XWPF文档=新的XWPF文档(输入);
列表元素=document.getBodyElements();
for(IBodyElement元素:元素){
if(XWPFParagraph的元素实例){
XWPFParagraph段落=(XWPFParagraph)元素;
列表运行=段落.getRuns();
对于(XWPFRun运行:运行){
while(run.getCTR().getDrawingList().size()>0){
run.getCTR().removeDrawing(0);
}
}
}
}
我还使用了“removePict()”方法,但这并没有从文档中删除图像。我还尝试将removePict()和removeDrawing()与其对应的while循环一起使用,但没有成功地将它们完全从关系文件中删除


谢谢

你是如何删除图像的?添加了我正在使用的代码。