我正在制作一个OpenXML文档生成器。它根据系统数据生成Word文档。我已经设置了表头,它们可以解决问题。我的问题如下: 在特殊情况下(如果标题适合页面,但下一行没有)它将显示标题,然后将有分页符,它将再次显示在新页面上。这当然是预期的行为,并通过手动进入生成的文档并在表之前添加一行或两行,将其转移到下一页来修复,但我想知道是否有办法使标题仅显示如果至少第一个单元格适合页面?我们的文档中显示了数百个表,我不喜欢以编程方式控制输出的显示方式。 你可以推荐任何提示或技巧吗?
答案 0 :(得分:0)
Word提供了许多工具来控制分页在其自动文本流中可能(或可能不)发生的位置/方式:
<w:trPr><w:cantSplit/></w:trPr>
类(TableRowProperties的子代)/对象模型中的CantSplit
/ 表属性/行/允许跨页间< / em>在Word UI中。AllowBreakAcrossPages
)。在这种情况下,最相关的是将具有此属性的段落与下面的段落保持在同一页面上的段落:Word {1}}在Word Open XML / <w:p>
类(ParagraphProperties的子项)中Word UI中的对象模型中的Open XML SDK / <w:pPr><w:keepNext/></w:pPr>
/ Paragraph / Line和Page break / Keep with Next 。KeepNext
/ Open XML SDK / Paragraph.KeepWithNext
中的<w:pPr><w:keepLines></w:pPr>
类Word UI中的对象模型/ *段落/行和分页符/将行保持在一起。KeepLines
/ Open XML SDK中的Paragraph.KeepTogether
类/对象模型中的<w:pPr><w:widowControl/></w:pPr>
/ Paragarph Word UI中的/ Line和分页符/ Widow / Orphan控件。WidowControl
中的Paragraph.WidowControl
/ <w:pPr><w:pageBreakBefore/></w:pPr>
类在Word UI中之前的model / Paragarph / Line和分页符/分页符。这些中的每一个都是有趣而有力的。它们作为样式定义的一部分特别有效。结合使用,它们可以为您提供相当精细的页面布局控制,但您必须要小心。例如,如果您只是将“keep with next”应用于表中的所有段落,那么最终效果将是Word将尝试将整个表保留在一个页面上,如果更长,则会将其破坏,就好像该属性没有一直适用。
这就是我列出可以找到命令的所有变体的原因之一。在UI中尝试这些通常会有很大帮助;或者,如果您遇到问题,请调查结果中哪些设置处于活动状态,这不是您想要的。