|
@@ -3,6 +3,7 @@ package com.dayou;
|
|
import com.aspose.words.*;
|
|
import com.aspose.words.*;
|
|
import com.aspose.words.net.System.Data.DataRow;
|
|
import com.aspose.words.net.System.Data.DataRow;
|
|
import com.aspose.words.net.System.Data.DataTable;
|
|
import com.aspose.words.net.System.Data.DataTable;
|
|
|
|
+import com.dayou.annotation.WordTableColumn;
|
|
import com.dayou.utils.AsposeWordUtil;
|
|
import com.dayou.utils.AsposeWordUtil;
|
|
import lombok.Builder;
|
|
import lombok.Builder;
|
|
import lombok.Data;
|
|
import lombok.Data;
|
|
@@ -15,6 +16,7 @@ import java.nio.file.Files;
|
|
import java.nio.file.Paths;
|
|
import java.nio.file.Paths;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.Arrays;
|
|
import java.util.Arrays;
|
|
|
|
+import java.util.Collections;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -52,14 +54,20 @@ public class WordSimpleTests {
|
|
@Data
|
|
@Data
|
|
@Builder
|
|
@Builder
|
|
public static class SimpleWordTableData {
|
|
public static class SimpleWordTableData {
|
|
|
|
+
|
|
|
|
+ @WordTableColumn(name = "id")
|
|
private String id;
|
|
private String id;
|
|
|
|
|
|
|
|
+ @WordTableColumn(name = "担保人")
|
|
private String pledger;
|
|
private String pledger;
|
|
|
|
|
|
|
|
+ @WordTableColumn(name = "合同编号")
|
|
private String contractNum;
|
|
private String contractNum;
|
|
|
|
|
|
|
|
+ @WordTableColumn(name = "担保方式")
|
|
private String guarantyStyle;
|
|
private String guarantyStyle;
|
|
|
|
|
|
|
|
+ @WordTableColumn(name = "金额")
|
|
private String amount;
|
|
private String amount;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -177,41 +185,9 @@ public class WordSimpleTests {
|
|
// 需要插入的word文件
|
|
// 需要插入的word文件
|
|
Document subDoc = new Document("E:\\test\\word\\5_main_output.doc");
|
|
Document subDoc = new Document("E:\\test\\word\\5_main_output.doc");
|
|
|
|
|
|
- // 是否纵向纸张
|
|
|
|
-/* boolean isPortrait = true;
|
|
|
|
-
|
|
|
|
- // Aspose的文档构造器
|
|
|
|
- DocumentBuilder builder = new DocumentBuilder(mainDoc);
|
|
|
|
- // 获取书签信息
|
|
|
|
- BookmarkCollection bms = mainDoc.getRange().getBookmarks();
|
|
|
|
- Bookmark bm = bms.get(bookmark);
|
|
|
|
- // 判断书签是否为null
|
|
|
|
- if (bm != null) {
|
|
|
|
-
|
|
|
|
- // 移动光标到书签的位置
|
|
|
|
- builder.moveToBookmark(bookmark, true, false);
|
|
|
|
- // 在文档中插入段落分隔符(会在书签位置换行)
|
|
|
|
- builder.writeln();
|
|
|
|
- Node insertAfterNode = builder.getCurrentParagraph().getPreviousSibling();
|
|
|
|
- // 在分隔符插入word
|
|
|
|
- AsposeWordUtil.insertDocumentAfterNode(insertAfterNode, mainDoc, subDoc);
|
|
|
|
- }
|
|
|
|
- //设置纸张大小
|
|
|
|
- builder.getPageSetup().setPaperSize(PaperSize.A4);
|
|
|
|
-
|
|
|
|
- // 判断是横向还是纵向纸张
|
|
|
|
- if (isPortrait) {
|
|
|
|
- //纵向
|
|
|
|
- builder.getPageSetup().setOrientation(Orientation.PORTRAIT);
|
|
|
|
- builder.insertBreak(BreakType.SECTION_BREAK_NEW_PAGE);
|
|
|
|
- } else {
|
|
|
|
- //横向
|
|
|
|
- builder.getPageSetup().setOrientation(Orientation.LANDSCAPE);
|
|
|
|
- builder.insertBreak(BreakType.SECTION_BREAK_NEW_PAGE);
|
|
|
|
- }*/
|
|
|
|
- mainDoc = AsposeWordUtil.insertDocumentAfterBookMark(mainDoc, subDoc, bookmark, false);
|
|
|
|
- // 保存文件
|
|
|
|
- mainDoc.save("E:\\test\\word\\2_framework_output.doc");
|
|
|
|
|
|
+ mainDoc = AsposeWordUtil.insertDocumentAfterBookMark(mainDoc, subDoc, bookmark, false);
|
|
|
|
+ // 保存文件
|
|
|
|
+ mainDoc.save("E:\\test\\word\\2_framework_output.doc");
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -235,6 +211,23 @@ public class WordSimpleTests {
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
|
|
+ * 测试在指定书签处创建table
|
|
|
|
+ * 这里测试的是从无到有的创建一个table,和值填充到模板中已存在的table不一样
|
|
|
|
+ * @throws Exception
|
|
|
|
+ */
|
|
|
|
+ @Test
|
|
|
|
+ void testCreateTable() throws Exception {
|
|
|
|
+ Document doc = new Document("E:\\test\\word\\createTable.doc");
|
|
|
|
+ // 设置信息
|
|
|
|
+ SimpleWordTableData data1 = SimpleWordTableData.builder().id("1").pledger("张三").contractNum("合同阿巴阿巴阿巴阿巴").guarantyStyle("担保").amount("1000万").build();
|
|
|
|
+ SimpleWordTableData data2 = SimpleWordTableData.builder().id("2").pledger("李四").contractNum("合同呜呼呜呼呜呼芜湖").guarantyStyle("抵押").amount("200028万").build();
|
|
|
|
+ List<SimpleWordTableData> contractList = Arrays.asList(data1,data2);
|
|
|
|
+
|
|
|
|
+ AsposeWordUtil.createTable(doc, SimpleWordTableData.class, contractList, "table");
|
|
|
|
+ doc.save("E:\\test\\word\\createTable.doc");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
* (该方法实测不是很好用,建议先在模板设置好页眉页脚页码等相关设置)
|
|
* (该方法实测不是很好用,建议先在模板设置好页眉页脚页码等相关设置)
|
|
* 设置Word页眉
|
|
* 设置Word页眉
|
|
* 不能先设置页脚,需要先设置页码后才能设置页脚内容
|
|
* 不能先设置页脚,需要先设置页码后才能设置页脚内容
|