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.util.Units;
|
||||||
import org.apache.poi.xwpf.usermodel.*;
|
import org.apache.poi.xwpf.usermodel.*;
|
||||||
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBookmark;
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTBookmark;
|
||||||
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.w3c.dom.Node;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
@ -65,9 +67,38 @@ public class ContactSignUtils {
|
|||||||
String name = bookmark.getName();
|
String name = bookmark.getName();
|
||||||
if (name.contains(bookmarkName)) {
|
if (name.contains(bookmarkName)) {
|
||||||
List<XWPFRun> runs = paragraph.getRuns();
|
List<XWPFRun> runs = paragraph.getRuns();
|
||||||
XWPFRun run;
|
XWPFRun run = null;
|
||||||
if (!runs.isEmpty()) {
|
int idx = 0;
|
||||||
run = runs.get(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 {
|
} else {
|
||||||
run = paragraph.createRun();
|
run = paragraph.createRun();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user