我有一个问题,删除书签&段落。
书签: 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
您也可以使用bookmark.remove()方法来删除书签,而不是将光标移动到段落然后删除该段落。
我是Aspose的开发者布道师
我的问题解决了。它不是很好,但它对我来说是工作。
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");
}