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());
}