java 删除XWPF超链接运行Apache POI

5ktev3wc  于 2023-03-16  发布在  Java
关注(0)|答案(1)|浏览(185)

我和这位合伙人有同样的问题:how to remove a XWPFHyperlinkRun by poi
由于XWPFHyperlinkRun元素,我无法将.doc转换为.pdf。

我可以删除这样一个简单的运行段落:

for (XWPFParagraph xwpfParagraph : paragraphs) {
        for (int i = 0; i < xwpfParagraph.getRuns().size(); i++)
       {
          xwpfParagraph.removeRun(i);
       }
    }

但是超文本链接不......
如果有人有解决办法,我将非常感激。
谢谢,问候。

arknldoa

arknldoa1#

您可以使用机制删除运行并更新新运行

for (var rIndex = 0; rIndex < paragraph.getRuns().size(); rIndex++) {
        final var run = paragraph.getRuns().get(rIndex);
        if (run instanceof XWPFHyperlinkRun) {
            String anchor = ((XWPFHyperlinkRun) run).getAnchor();
            if (anchor != null) {
                final var xmlObject = run.getCTR().copy();
                paragraph.removeRun(rIndex);
                paragraph.insertNewHyperlinkRun(rIndex, "new-uri").getCTR().set(xmlObject);
            }
        }
    }

如果您不想添加新的,则只需删除插入行

相关问题