|
@@ -24,6 +24,7 @@ import java.util.regex.Pattern;
|
|
|
import java.util.stream.Collectors;
|
|
|
import javax.imageio.ImageIO;
|
|
|
|
|
|
+import com.deepoove.poi.data.Texts;
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
import org.apache.pdfbox.Loader;
|
|
|
import org.apache.pdfbox.pdmodel.PDDocument;
|
|
@@ -34,12 +35,15 @@ import org.apache.poi.xwpf.usermodel.IBodyElement;
|
|
|
import org.apache.poi.xwpf.usermodel.ParagraphAlignment;
|
|
|
import org.apache.poi.xwpf.usermodel.UnderlinePatterns;
|
|
|
import org.apache.poi.xwpf.usermodel.XWPFDocument;
|
|
|
-import org.apache.poi.xwpf.usermodel.XWPFHyperlinkRun;
|
|
|
+
|
|
|
import org.apache.poi.xwpf.usermodel.XWPFParagraph;
|
|
|
+import org.apache.poi.xwpf.usermodel.XWPFRelation;
|
|
|
import org.apache.poi.xwpf.usermodel.XWPFRun;
|
|
|
import org.apache.poi.xwpf.usermodel.XWPFTable;
|
|
|
import org.apache.poi.xwpf.usermodel.XWPFTableCell;
|
|
|
import org.apache.poi.xwpf.usermodel.XWPFTableRow;
|
|
|
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTHyperlink;
|
|
|
+import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR;
|
|
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTc;
|
|
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTcPr;
|
|
|
import org.openxmlformats.schemas.wordprocessingml.x2006.main.STVerticalJc;
|
|
@@ -307,6 +311,7 @@ public abstract class AbstractRender {
|
|
|
this.valColIndex = valRowIndex;
|
|
|
}
|
|
|
|
|
|
+ @SuppressWarnings("checkstyle:NestedForDepth")
|
|
|
@Override
|
|
|
public void render(ElementTemplate eleTemplate, Object data, XWPFTemplate template) {
|
|
|
RunTemplate runTemplate = (RunTemplate) eleTemplate;
|
|
@@ -351,6 +356,15 @@ public abstract class AbstractRender {
|
|
|
XWPFTableCell valueCell = row.getCell(currIndex);
|
|
|
String valStr = realData.getOrDefault(idx2Expression.get(i), "-").toString();
|
|
|
valueCell.setText(valStr);
|
|
|
+ for (XWPFParagraph paragraph : valueCell.getParagraphs()) {
|
|
|
+
|
|
|
+ for (XWPFRun runa : paragraph.getRuns()) {
|
|
|
+
|
|
|
+ runa.setFontFamily("思源黑体 Medium");
|
|
|
+
|
|
|
+ runa.setFontSize(9);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
currIndex += indexDelta;
|
|
|
}
|
|
@@ -635,6 +649,7 @@ public abstract class AbstractRender {
|
|
|
paragraph.setAlignment(ParagraphAlignment.CENTER);
|
|
|
for (XWPFRun runa : paragraph.getRuns()) {
|
|
|
runa.setFontFamily("思源黑体 Medium");
|
|
|
+ runa.setFontSize(10);
|
|
|
}
|
|
|
}
|
|
|
try {
|
|
@@ -826,6 +841,7 @@ public abstract class AbstractRender {
|
|
|
// uri render when no filename
|
|
|
TextRenderPolicy.Helper.renderTextRun(((RunTemplate) eleTemplate).getRun(),
|
|
|
new HyperlinkTextRenderData(url, url));
|
|
|
+ return;
|
|
|
} else if (filename.endsWith(".pdf")) {
|
|
|
// pdf render, replace data with bytestream
|
|
|
PDDocument document = null;
|
|
@@ -925,20 +941,20 @@ public abstract class AbstractRender {
|
|
|
return new ParagraphRenderPolicy() {
|
|
|
@Override
|
|
|
public void render(ElementTemplate eleTemplate, Object data, XWPFTemplate template) {
|
|
|
- // 获取当前运行的
|
|
|
- XWPFParagraph paragraph = ((RunTemplate) eleTemplate).getRun().getParagraph();
|
|
|
- int pos = paragraph.getRuns().indexOf(((RunTemplate) eleTemplate).getRun());
|
|
|
- paragraph.removeRun(pos);
|
|
|
- paragraph.removeRun(pos);
|
|
|
- if (data instanceof String) {
|
|
|
- XWPFHyperlinkRun hyperlinkRun = paragraph.createHyperlinkRun(data.toString());
|
|
|
- hyperlinkRun.setText(data.toString());
|
|
|
- hyperlinkRun.setColor("0000FF");
|
|
|
- hyperlinkRun.setUnderline(UnderlinePatterns.SINGLE);
|
|
|
- hyperlinkRun.setFontFamily("思源黑体 Medium");
|
|
|
- hyperlinkRun.setFontSize(10.5);
|
|
|
|
|
|
+ if (data instanceof String) {
|
|
|
+ // 获取超链接URL(从数据中)
|
|
|
+ String url = data.toString();
|
|
|
+ TextRenderPolicy.Helper.renderTextRun(((RunTemplate) eleTemplate).getRun(),
|
|
|
+ new HyperlinkTextRenderData(url, url));
|
|
|
}
|
|
|
+ if (data instanceof Map) {
|
|
|
+ Map<String, Object> mpData = (Map<String, Object>) data;
|
|
|
+ String url = mpData.getOrDefault("fileUri", "").toString();
|
|
|
+ TextRenderPolicy.Helper.renderTextRun(((RunTemplate) eleTemplate).getRun(),
|
|
|
+ new HyperlinkTextRenderData(url, url));
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
};
|
|
|
}
|