使用OpenXml和分节符合并文档会导致空段落

时间:2014-02-27 10:44:34

标签: ms-word openxml

我正在拼写几个文档,并要求每个文档都应在最终文档中保留其页眉和页脚信息。使用AltChunk而不是原始的OpenXml或DocumentBuilder在样式,格式,引用,部件等方面节省了很多精力。

不幸的是,几天之后,由于一个小而令人沮丧的问题,我似乎无法获得100%的工作版本,我需要一些见解。

我的代码很容易基于this article

我修改每个子文档,然后将它(作为AltChunk)附加到工作文档,方法是将最后一个属性移动到最后一个段落(为了保留页眉和页脚引用),但Word似乎是在添加这些文件中的每一个都是一个空白段落,因为它在最终文件中提供。我最终得到了:

包含正确页眉和页脚的文档1 部分属性/中断 空白段落 具有正确页眉和页脚的文档2 部分属性/中断 空白段落 的

之后我无法删除空白段落,因为我理想情况下不想先使用WAS渲染文档。

好像你没有下一段没有下一个分节符?

3 个答案:

答案 0 :(得分:0)

经过进一步调查后,似乎不会在我的使用场景中消失。我需要将最后一个部分属性放在body元素中,但由于我使用嵌套的AltChunk进行处理,它将无法工作。

我完全改变了我的方法,并使用OpenXml Power Tools和一些LINQ to Xml回到更详细的追加程序。

答案 1 :(得分:0)

  

我使用的是文档生成器,对我来说非常适合!

 var sources = new List<OpenXmlPowerTools.Source>();

 sources.Add(new OpenXmlPowerTools.Source(new WmlDocument(@tempReportPart1)));
 sources.Add(new OpenXmlPowerTools.Source(new WmlDocument(@tempReportPart2)));        

 var outputPath = @"C:\Users\xpto\Documents\TestFolder\myNewDocument.docx";

 DocumentBuilder.BuildDocument(sources, outputPath);

答案 2 :(得分:0)

导入HTML文件时,我有类似的空段落问题。

我的解决方案是,

插入HTML AltChunk后,我添加了一个GUID占位符。处理完文件后,我将再次打开文件,找到GUID并检查其前面是否有空段,如果是,则删除空段和GUID。它在我的解决方案中似乎完美无缺。

希望它有所帮助。