java和javascript获取word文档的书签位置对比
1.javascript:把IE浏览器的activex都打开,使用如下网页,可以看到书签顺序和位置:
<html> <head> <script> varword; word=newActiveXObject("Word.Application"); varrange=word.Range; word.Visible=true; varpath="D:\\xxx\\xxx\\xx.doc"; word.Documents.Open(path); for(vari=1;i<=word.ActiveDocument.Bookmarks.count;i++){ document.write(word.ActiveDocument.Bookmarks(i).Name); document.write(""); document.write(word.ActiveDocument.Bookmarks(i).Range.BookmarkID); document.write("</br>"); } </script> </head> <body> </body> </html>
java:用poi打开,这里用的是.doc文件,所以用旧一套poi的API,如果是docx,原理是一样的。
FileInputStreamin=newFileInputStream("D:\\xxx\\xxx\\xx.doc"); HWPFDocumentdoc=newHWPFDocument(in); Bookmarksbookmarks=doc.getBookmarks(); for(inti=0,j=bookmarks.getBookmarksCount();i<j;i++){ Bookmarkbookmark=bookmarks.getBookmark(i); System.out.println(bookmark.getName()); System.out.println(i); System.out.println(bookmark.getStart()); }