feat: bookmark replace
This commit is contained in:
parent
3168c49e1a
commit
7d0bbcc052
@ -17,6 +17,7 @@ import org.w3c.dom.Node;
|
|||||||
|
|
||||||
import java.awt.print.Book;
|
import java.awt.print.Book;
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
|
import java.math.BigInteger;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@ -115,6 +116,11 @@ public class BookmarkExec {
|
|||||||
queryBookmarkIdx(paragraph, info);
|
queryBookmarkIdx(paragraph, info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BigInteger numID = paragraph.getNumID();
|
||||||
|
if (numID != null) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
return new ArrayList<>(set);
|
return new ArrayList<>(set);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -129,10 +135,15 @@ public class BookmarkExec {
|
|||||||
CTR ctr = run.getCTR();
|
CTR ctr = run.getCTR();
|
||||||
Node node = ctr.getDomNode();
|
Node node = ctr.getDomNode();
|
||||||
Node currentNode = node.getPreviousSibling();
|
Node currentNode = node.getPreviousSibling();
|
||||||
int idx = runs.indexOf(run);
|
|
||||||
// 递归查找前一个兄弟节点
|
// 递归查找前一个兄弟节点
|
||||||
while (currentNode != null) {
|
while (currentNode != null) {
|
||||||
String nodeName = currentNode.getNodeName();
|
String nodeName = currentNode.getNodeName();
|
||||||
|
|
||||||
|
if (MARK_RUN.equals(nodeName)) {
|
||||||
|
// 跨run,跳过
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (BOOKMARK_START.equals(nodeName)) {
|
if (BOOKMARK_START.equals(nodeName)) {
|
||||||
NamedNodeMap attrs = currentNode.getAttributes();
|
NamedNodeMap attrs = currentNode.getAttributes();
|
||||||
Node idNode = attrs.getNamedItem(ATTR_BOOKMARK_ID);
|
Node idNode = attrs.getNamedItem(ATTR_BOOKMARK_ID);
|
||||||
@ -140,7 +151,7 @@ public class BookmarkExec {
|
|||||||
|
|
||||||
// 匹配书签ID或名称
|
// 匹配书签ID或名称
|
||||||
if (id.equals(info.getBookmarkId())) {
|
if (id.equals(info.getBookmarkId())) {
|
||||||
info.setStartIdx(idx); // 记录当前Run的索引为起始位置
|
info.setStartIdx(i); // 记录当前Run的索引为起始位置
|
||||||
foundStart = true;
|
foundStart = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -151,7 +162,7 @@ public class BookmarkExec {
|
|||||||
|
|
||||||
// 匹配书签ID
|
// 匹配书签ID
|
||||||
if (id.equals(info.getBookmarkId())) {
|
if (id.equals(info.getBookmarkId())) {
|
||||||
info.setEndIdx(idx); // 记录当前Run的索引为结束位置
|
info.setEndIdx(i); // 记录当前Run的索引为结束位置
|
||||||
foundEnd = true;
|
foundEnd = true;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -15,12 +15,16 @@ import lombok.NoArgsConstructor;
|
|||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
public class BookmarkInfo {
|
public class BookmarkInfo {
|
||||||
|
|
||||||
|
// 书签名称
|
||||||
private String bookmarkName;
|
private String bookmarkName;
|
||||||
|
|
||||||
|
// 书签id
|
||||||
private String bookmarkId;
|
private String bookmarkId;
|
||||||
|
|
||||||
|
// 起始run idx
|
||||||
private int startIdx;
|
private int startIdx;
|
||||||
|
|
||||||
|
// 中止run idx
|
||||||
private int endIdx;
|
private int endIdx;
|
||||||
|
|
||||||
public BookmarkInfo(String bookmarkName, String bookmarkId) {
|
public BookmarkInfo(String bookmarkName, String bookmarkId) {
|
||||||
|
Loading…
Reference in New Issue
Block a user