Aspose Words - 仅删除部分书签

时间:2015-09-16 08:17:29

标签: java aspose.words

我在删除书签时遇到问题。段落。

书签: SUB_1 SUB_2 SUB_3 SUB_4 SUB_5

循环执行后,仅删除 SUB_1,SUB_3 SUB_5

            BookmarkCollection bookmarks = doc.getRange().getBookmarks();
            DocumentBuilder builder = new DocumentBuilder(doc);

            System.out.println(bookmarks.getCount()); 

            for(Bookmark b : bookmarks) {
                System.out.println("bookmark: " + b.getName());
                builder.moveToBookmark(b.getName());
                builder.getCurrentParagraph().remove(); 
            }

输出:

10:13:10,379 INFO  [stdout] 5

10:13:10,380 INFO  [stdout] (EJB default - 8) bookmark: SUB_1

10:13:10,381 INFO  [stdout] (EJB default - 8) bookmark: SUB_3

10:13:10,382 INFO  [stdout] (EJB default - 8) bookmark: SUB_5

2 个答案:

答案 0 :(得分:1)

您也可以使用bookmark.remove()方法删除书签,而不是将光标移动到段落,然后删除该段落。

我在Aspose担任开发人员传播者。

答案 1 :(得分:0)

我解决了我的问题。它不是很好,但它对我有用。

        BookmarkCollection bookmarks = doc.getRange().getBookmarks();
        DocumentBuilder builder;
        try {
            builder = new DocumentBuilder(doc);
            while(bookmarks.getCount() > 0) {
                for(Bookmark b : bookmarks) {
                    System.out.println("bookmark: " + b.getName());
                    b.setText("");
                    builder.moveToBookmark(b.getName());
                    builder.getCurrentParagraph().remove(); 
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
            logger.error("Problem with deleting bookmark");
        }