Aspose.word 文档合并后兼容问题。原文档中的空格在合并的文档中成了很长的空格,中横线后面的内容直接换行

aspose.word 文档合并后兼容问题。原文档中的空格在合并的文档中成了很长的空格,中横线后面的内容直接换行。 生成的文档在中文输入法编辑后保存,格式有全部都回复正常了。

// 创建输出文档
var output = new Document();
var outputBuilder = new DocumentBuilder(output);

// 过滤数据
List<MainDocModel> filterList = null;
 filterList = configList.Where(c => c.field_5).OrderBy(m => m.field_2).ToList();

foreach (var configItem in filterList)
{
    string fileName = Path.GetFileName(configItem.Link);
    try
    {
        logger.LogInformation($"【MergeDocumentsAsync】任务:{ ShareFolderTems }{ fileName}");
        // 加载输入文档
        var input = new Document(ShareFolderTems + fileName);

        if (configItem.Title == "附件清单")
        {
            // 将源文档附加到目标文档的末尾。
            output.AppendDocument(input, ImportFormatMode.KeepSourceFormatting);
        }
        else
        {
            // 将源文档附加到目标内容的末尾
            outputBuilder.InsertDocument(input, ImportFormatMode.KeepSourceFormatting);
        }
    }
    catch (Exception ex)
    {
        logger.LogInformation($"【MergeDocumentsAsync】任务(处理模板文档报错):Error processing document {fileName}: {ex.Message}");
    }
}
// 更新文档中的所有域,包括目录中的页码
output.UpdateFields();
output.Save(outputDocName);

现象如下,期待有朋友能回复一下,或者有解决思路的可以。多谢。


@CuteCoding 你能提供你的输入文件吗?如果它与某些兼容性有关,您可以在附加任何其他文档之前,尝试将输出文档优化到所需的MS Word版本。此链接可能有用CompatibilityOptions.OptimizeFor | Aspose.Words for .NET.

感谢回复。我的问题解决了,跟你提供的思路一样。 使用的是output.CompatibilityOptions.OptimizeFor(MsWordVersion.Word2019);

我分析了一下,要合并的文件比较多,在aspose 合并并生成文档的时候产生了兼容性。当然这个兼容性也可能是输入文档内容导致的。通过指定Word2019,就可以解决这些兼容性问题。由于我的输入文档也都是word2019,所以自身也不需要兼容。

@CuteCoding 很高兴知道你解决了你的问题。