为什么Word中我的形状后面有空行?

Why are there empty lines after my shape in Word?

此问题与此 .

有关(来自)

我正在从数据库中的数据动态生成 W​​ord 文档。在这一代中,我需要让一个部分的第一页与该部分的其他页面具有不同的上边距。由于需要很长时间才能正确解释的原因,我不能只创建一个具有不同上边距的新部分。

为了解决我的问题,我想我会创建一个没有边框和填充(不可见)的形状(矩形),这是我想要的边距高度。然后我会将它绝对放在 (0,0) 处。我还将其设置为 wrapTopAndBottom,以便将页面 body 中的文本向下推。这是有效的...除了一个小问题。

如您所见,在我的形状之后有一个大的空白区域。那里有实际的空行。您可以在这张图片中更好地看到线条,我在这些线条中放置了文字。

当我查看 Word 存档中的 header xml 文件时,这些行不存在。我不确定它们来自哪里或如何摆脱它们。我可以使用 Word 手动删除它们,但每次我重新生成文件时,它们都会放回那里。如果有人知道为什么会发生这种情况和/或如何解决它,我将不胜感激。

谢谢。

我终于明白了。

抱歉,我无法在此处 post 编写代码。首先,我没有使用 C#,我使用的是 PHP。其次,我必须 post 显示 header 是如何创建的代码量在这样的论坛上是令人望而却步的。第三,我真的不允许post公司的代码放在这里。

反正看到问题就简单了。我们在 header 内放置了多个绝对定位的 objects(形状、文本、图像等)。在创建这些 objects 的 class 中,每个元素都被放置在一个 <w:p> 元素中。例如,如果有 3 个这样的 objects,则 XML 看起来像这样。

<hdr>
   <p>Some Object</p>
   <p>Some Object</p>
   <p>Some Object</p>
</hdr>

问题在于,即使 <p> 中的每个 objects 都是绝对定位的,<p> 元素本身也创建了一条线,并且 space 为该线创建了一条线.所以上面的 header 会有 3 个空行。如果 header 有 6 个或 7 个 objects,这就会成为一个问题,因为空行会压低 header 的页边距并迫使页面内容也向下。这是不受欢迎的行为。

解决方法很简单。所有绝对定位的objects都可以放在同一个<p>元素中。无论您有多少 objects,这都会在 header 中留下 1 个空行。