首页 > 解决方案 > 如何使用 Apache POI XWPF 阅读段落之外的书签

问题描述

有时,在.docx文件中定义书签时(在本例中使用 Word 2016),书签开始标记 ( <w:bookmarkStart>) 由 MS Word 放置在段落开始之前。解压缩.docx文件显示以下内容:

<w:bookmarkStart w:id="38" w:name="MyBookmark"/><w:p w14:paraId="1B2F3A46" ...>...
<w:bookmarkEnd w:id="38"/></w:p>

这样的书签不会通过在任何段落的 bookmarkStart 元素中迭代来列出,因此以下代码不会列出此书签:

XWPFDocument document = ...
for (XWPFParagraph paragraph : document.getParagraphs())
{
    for(CTBookmark bookmark : paragraph.getCTP().getBookmarkStartList())
        System.out.println(bookmark.getName());
    {
}

问题是如何发现放在段落之外的那种书签?

标签: apache-poidocxapache-poi-4

解决方案


推荐阅读