fix:合同签章位置不正确问题
This commit is contained in:
parent
7504c5d218
commit
09cac84450
@ -10,8 +10,10 @@ import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
|
||||
import org.apache.poi.util.Units;
|
||||
import org.apache.poi.xwpf.usermodel.*;
|
||||
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBookmark;
|
||||
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.w3c.dom.Node;
|
||||
|
||||
import java.io.*;
|
||||
import java.net.URL;
|
||||
@ -65,9 +67,38 @@ public class ContactSignUtils {
|
||||
String name = bookmark.getName();
|
||||
if (name.contains(bookmarkName)) {
|
||||
List<XWPFRun> runs = paragraph.getRuns();
|
||||
XWPFRun run;
|
||||
if (!runs.isEmpty()) {
|
||||
run = runs.get(0);
|
||||
XWPFRun run = null;
|
||||
int idx = 0;
|
||||
// for (int i = 0; i < runs.size(); i++) {
|
||||
// String nodeName = runs.get(i).getCTR().getDomNode().getPreviousSibling().getNodeName();
|
||||
// if ("w:bookmarkEnd".equals(nodeName) && name.equals(runs.get(i).getCTR().getDomNode().getPreviousSibling().getPreviousSibling().getAttributes().getNamedItem("w:name").getNodeValue())) {
|
||||
// idx = i - 1;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
//当前分词的上一个分词是不是书签的结尾,如果是就在上一个分词后面插入图片
|
||||
for (int i = 0; i < runs.size(); i++) {
|
||||
Node previousSibling = runs.get(i).getCTR().getDomNode().getPreviousSibling();
|
||||
|
||||
if (previousSibling != null) {
|
||||
String nodeName = previousSibling.getNodeName();
|
||||
|
||||
if ("w:bookmarkEnd".equals(nodeName)) {
|
||||
Node bookmarkStart = previousSibling.getPreviousSibling();
|
||||
|
||||
if (bookmarkStart != null) {
|
||||
Node nameAttribute = bookmarkStart.getAttributes().getNamedItem("w:name");
|
||||
|
||||
if (nameAttribute != null && name.equals(nameAttribute.getNodeValue())) {
|
||||
idx = i - 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (idx >= 0 && idx < runs.size()) {
|
||||
run = runs.get(idx);
|
||||
} else {
|
||||
run = paragraph.createRun();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user