Word Automation:检测是否需要分页?

时间:2009-05-05 14:55:03

标签: c# automation ms-word break

我正在使用C#生成一个使用Word Automation API生成Word文档的项目。

我想在生成的文档中的特定点插入分页符,我目前正在使用以下代码成功完成此操作:

// Generate page break
object pageBreak = WdBreakType.wdPageBreak;
wordApp.Selection.InsertBreak(ref pageBreak);

但是,如果在上一页的空间不足之后文档自然地包裹在下一页上,那么我真的不想生成分页符,否则我最终会得到一个空白页。 / p>

我真正想要的是能够找到光标的确切位置,如果它位于当前页面的第一行和第一列,那么我可以安全地假设没有必要插入分页符。 / p>

有没有办法访问光标的位置?或者另一种可以做同样事情的解决方案?这似乎是一个简单的要求,所以如果我错过了显而易见的事情,我会提前道歉。

2 个答案:

答案 0 :(得分:5)

假设您以编程方式构建文档的方式会导致wordApp.Selection正确反映文档中的实际(和相关)位置,您可以使用其Information属性确定其起始页面上的行和列。以下两个WdInformation枚举(此处显示为VBA;不确定.NET PIA语法是什么):

line = wordApp.Selection.Information(wdFirstCharacterLineNumber)
col = wordApp.Selection.Information(wdFirstCharacterColumnNumber)

这些值对应于Word状态栏中显示的Ln和Col值。如果它们都等于1,那么您就处于选择开始的页面的第一个位置。

祝你好运!

答案 1 :(得分:0)

您可以尝试在段落上设置属性,使其在此之前有分页符。如果Word Automation API允许设置它,我不会,但它似乎正是你需要的。