diff --git a/wmyun-framework/wmyun-spring-boot-starter-word/src/main/java/com/wmyun/farmwork/word/core/BookmarkExec.java b/wmyun-framework/wmyun-spring-boot-starter-word/src/main/java/com/wmyun/farmwork/word/core/BookmarkExec.java index 5e44744..049209f 100644 --- a/wmyun-framework/wmyun-spring-boot-starter-word/src/main/java/com/wmyun/farmwork/word/core/BookmarkExec.java +++ b/wmyun-framework/wmyun-spring-boot-starter-word/src/main/java/com/wmyun/farmwork/word/core/BookmarkExec.java @@ -17,6 +17,7 @@ import org.w3c.dom.Node; import java.awt.print.Book; import java.io.*; +import java.math.BigInteger; import java.util.*; import java.util.stream.Collectors; @@ -115,6 +116,11 @@ public class BookmarkExec { queryBookmarkIdx(paragraph, info); } + BigInteger numID = paragraph.getNumID(); + if (numID != null) { + + } + return new ArrayList<>(set); } @@ -129,10 +135,15 @@ public class BookmarkExec { CTR ctr = run.getCTR(); Node node = ctr.getDomNode(); Node currentNode = node.getPreviousSibling(); - int idx = runs.indexOf(run); // 递归查找前一个兄弟节点 while (currentNode != null) { String nodeName = currentNode.getNodeName(); + + if (MARK_RUN.equals(nodeName)) { + // 跨run,跳过 + break; + } + if (BOOKMARK_START.equals(nodeName)) { NamedNodeMap attrs = currentNode.getAttributes(); Node idNode = attrs.getNamedItem(ATTR_BOOKMARK_ID); @@ -140,7 +151,7 @@ public class BookmarkExec { // 匹配书签ID或名称 if (id.equals(info.getBookmarkId())) { - info.setStartIdx(idx); // 记录当前Run的索引为起始位置 + info.setStartIdx(i); // 记录当前Run的索引为起始位置 foundStart = true; break; } @@ -151,7 +162,7 @@ public class BookmarkExec { // 匹配书签ID if (id.equals(info.getBookmarkId())) { - info.setEndIdx(idx); // 记录当前Run的索引为结束位置 + info.setEndIdx(i); // 记录当前Run的索引为结束位置 foundEnd = true; break; } diff --git a/wmyun-framework/wmyun-spring-boot-starter-word/src/main/java/com/wmyun/farmwork/word/core/model/BookmarkInfo.java b/wmyun-framework/wmyun-spring-boot-starter-word/src/main/java/com/wmyun/farmwork/word/core/model/BookmarkInfo.java index 7382b97..c1c6fe9 100644 --- a/wmyun-framework/wmyun-spring-boot-starter-word/src/main/java/com/wmyun/farmwork/word/core/model/BookmarkInfo.java +++ b/wmyun-framework/wmyun-spring-boot-starter-word/src/main/java/com/wmyun/farmwork/word/core/model/BookmarkInfo.java @@ -15,12 +15,16 @@ import lombok.NoArgsConstructor; @NoArgsConstructor public class BookmarkInfo { + // 书签名称 private String bookmarkName; + // 书签id private String bookmarkId; + // 起始run idx private int startIdx; + // 中止run idx private int endIdx; public BookmarkInfo(String bookmarkName, String bookmarkId) {