当我使用如下代码对某个Word文档进行文档拼接后字体被改变了。其他测试文件没有这个问题,将此测试文件的内容复制到另一个空文件中进行测试也没有问题,仅仅是这个文件发现了这个问题。
public static void main(String[] args) throws Exception {
Document doc = new Document();
Document src1 = new Document("E:\\test.docx");
Document src2 = new Document("E:\\test.docx");
// 拼接文件
doc.appendDocument(src1, ImportFormatMode.KEEP_DIFFERENT_STYLES);
doc.appendDocument(src2, ImportFormatMode.KEEP_DIFFERENT_STYLES);
// 保存拼接完成的文件
Section firstSection = doc.getFirstSection();
doc.getSections().remove(firstSection);
doc.save("E:\\result.docx");
}
输入:
输出:
输入文件 test:
test.docx (34.0 KB)
输出文件 result:
result.docx (9.9 KB)
虽然我调整了代码解决了如上问题。
public static void main(String[] args) throws Exception {
Document doc = new Document("E:\\test.docx");
Document src1 = new Document("E:\\test.docx");
// 拼接文件
doc.appendDocument(src1, ImportFormatMode.KEEP_SOURCE_FORMATTING);
// 保存拼接完成的文件
doc.save("E:\\result.docx");
}
但我想请教下此类问题产生的具体原因,以及这个文件到底存在什么不同之处,以便我们去追踪错误来源。