From efd01c8d2e1e22cd4e07d00ea7f19ea39584dd62 Mon Sep 17 00:00:00 2001 From: zzs Date: Mon, 3 Mar 2025 18:30:33 +0800 Subject: [PATCH] wip: bookmark replace --- .../java/com/wmyun/farmwork/word/core/BookmarkExec.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 6926dc8..ef84df3 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 @@ -82,6 +82,7 @@ public class BookmarkExec { List runs = paragraph.getRuns(); XWPFRun run = null; int idx = 0; + boolean doR = false; for (int i = 0; i < runs.size(); i++) { Node previousSibling = runs.get(i).getCTR().getDomNode().getPreviousSibling(); if (previousSibling != null) { @@ -92,16 +93,17 @@ public class BookmarkExec { Node nameAttribute = bookmarkStartNode.getAttributes().getNamedItem("w:name"); if (nameAttribute != null && name.equals(nameAttribute.getNodeValue())) { idx = i - 1; + doR = true; break; } } } } } - if (idx >= 0 && idx < runs.size()) { + if (idx >= 0 && idx < runs.size() && doR) { run = runs.get(idx); } else { - run = paragraph.createRun(); + run = runs.get(runs.size() - 1); } BookmarkReplaceDataModel model = map.get(name); BookmarkType type = model.getType();