-
问题:使用Aspose生成word,发现样式丢失(如模板和生成的文档的字体不一致)
生成一个空Document对象doc,然后遍历Word模板生成Document对象,将其追加到doc中
Document doc= new Document();
for (int k = 0, len = 10; k < len; k++) {
Document childDoc= new Document(filePath);
doc.appendDocument(childDoc, ImportFormatMode.KEEP_SOURCE_FORMATTING);
}
doc.save(filePath);
-
解决方法:先生成多个word文档,然后再将word文档合并
遍历Word模板生成多个Word文档,然后使用其中一个Word文档生成Document对象,然后将其他生成的Word文件追加到其中
(将word模板复制一份,填充数据生成word文档,然后使用其中一个word文档创建Document对象,追加其他生成的文档)
List<String> list= new ArrayList<String>();
for (int k = 0, len = 10; k < len; k++) {
new FileSysStorServiceImpl().copyFile(filePath, newFilePath); //先复制模板
Document childDoc= new Document(newFilePath);
childDoc.save(newFilePath);
list.add(newFilePath);
}
Document doc= new Document(newFilePath);
for (int i = 0; i < list.size(); i++) {
if (doc == null) {
doc = new Document(list.get(i));
} else {
doc.appendDocument(new Document(list.get(i)),
ImportFormatMode.KEEP_SOURCE_FORMATTING);
}
}
doc.save(list.get(0));