java - How can i delete a bookmark using docx4j? -


strange thing. i'm trying delete "_goback" bookmark in docx file, because it's ruining variableprepare (interesting, different topic). have simple template, , there 1 bookmark, is:

<w:bookmarkstart w:id="0" w:name="_goback"/> <w:bookmarkend w:id="0"/> 

it appears anytime make change in template, in place of last change.

this code:

maindocumentpart main = docx.getmaindocumentpart(); list<object> bmlist = getallelementfromobject(main, ctbookmark.class); ctbookmark bm = (ctbookmark) bmlist.get(0); system.out.println(bm.getname()); 

gives me "_goback", i'm sure bookmark found correctly. strangely if this:

getallelementfromobject(main, ctbookmark.class).remove(0); 

the bookmark doesn't deleted. check, code:

system.out.println(getallelementfromobject(main, ctbookmark.class).size()); getallelementfromobject(main, ctbookmark.class).remove(0); system.out.println(getallelementfromobject(main, ctbookmark.class).size()); 

returns

1 1 

should use other approach delete bookmark in docx4j?

you don't provide code method getallelementfromobject, guess doesn't find ctbookmark object wrapped in jaxb element.

from bookmarksdeleter.java sample:

    // can't remove object parent,     // since in parent, may wrapped in jaxbelement     (object ox : thelist) {     if (xmlutils.unwrap(ox).equals(bm)) {         return thelist.remove(ox);     } 

you need handle ctmarkuprange?

so yeah, delete bookmarks using docx4j, see linked sample, or try rangefinder.java


Comments

Popular posts from this blog

powershell Start-Process exit code -1073741502 when used with Credential from a windows service environment -

twig - Using Twigbridge in a Laravel 5.1 Package -

c# - LINQ join Entities from HashSet's, Join vs Dictionary vs HashSet performance -