C# MS Word分页符插入错误位置

C# MS Word分页符插入错误位置,c#,ms-word,insert,page-break,C#,Ms Word,Insert,Page Break,我在VS2008中完全通过C创建了一个MS Word文档。我正在尝试插入分页符,当插入分页符时,它不是插入分页符并在底部添加新页面,而是插入分页符并在顶部添加页面。这将导致第一页成为最后一页 以下是插入分页符的代码: start = 0; end = 0; Word.Range rngDoc = Range(ref start, ref end); rngDoc.Col

我在VS2008中完全通过C创建了一个MS Word文档。我正在尝试插入分页符,当插入分页符时,它不是插入分页符并在底部添加新页面,而是插入分页符并在顶部添加页面。这将导致第一页成为最后一页

以下是插入分页符的代码:

                start = 0;
                end = 0;
                Word.Range rngDoc = Range(ref start, ref end);
                rngDoc.Collapse(ref CollapseEnd);
                rngDoc.InsertBreak(ref pageBreak);
                rngDoc.Collapse(ref CollapseEnd);

此外,每个页面都被一个表占用,如果这有助于诊断,那么我不是这方面的专家,所以这只是一个猜测,尽管您选择了0到0的范围,然后将其折叠,这看起来有点奇怪。从0到0的范围听起来好像可以为您提供文档的最开始部分,我猜您需要选择文档的最后一位,但不确定如何执行该操作。

InsertBreak从不在选择后插入。注意:

插入分页符或分栏符时,所选内容将替换为分页符。如果不希望替换选择,请在使用InsertBreak方法之前使用“折叠”方法。插入剖面打断时,打断将直接插入到选择对象的前面

我的重点。要想在页面末尾休息一下,我认为您必须什么都不选择,因为您在文档末尾

我记不起文档是否有自己的范围。你能从myDoc.Characters中得到一个包罗万象的范围吗

如果没有,我首先要做的就是

start = int.MaxValue;
end = int.MaxValue;
如果这不起作用,你可能会求助于计算机测试。大概是这样的:

WdStatistic stats = WdStatistic.wdStatisticCharacters;
var chars = myDoc.ComputeStatistics(stats, false);
然后从该值创建范围。希望我能多帮点忙,但我已经有一段时间了。祝你好运

您需要将rngDoc设置为在ActiveDocument.Range的末尾插入。这里有一些VBA,可以很容易地移植到C来实现这一点

Sub InsertNewPageAtEndofDoc()
    Dim rng As Range
    Dim adRange As Range
    Set adRange = ActiveDocument.Range
    Set rng = ActiveDocument.Range(adRange.Start, adRange.End)
    rng.Collapse (wdCollapseEnd)
    rng.InsertBreak (wdPageBreak)
    rng.Collapse (wdCollapseEnd)
End Sub

我使用了Todds方法,但在vb.net中:

Private Sub InsertNewPageAtEndofDoc(app As Word.Application)
        Dim rng As Word.Range
        Dim adRange As Word.Range
        adRange = app.ActiveDocument.Range
        rng = app.ActiveDocument.Range(adRange.Start, adRange.End)
        rng.Collapse(Word.WdCollapseDirection.wdCollapseEnd)
        rng.InsertBreak(Word.WdBreakType.wdPageBreak)
        rng.Collapse(Word.WdCollapseDirection.wdCollapseEnd)
End Sub

看起来它是在之前而不是之后插入的。是的,这正是它所做的。但我不知道如何更正它,以便在插入之后插入。是的,这是我的猜测,但由于文档页面有一个表占用整个区域,它会导致下一页出错。我不知道该怎么办。我要看看你对角色统计的看法,看看我能做些什么。我有一个想法,但我需要对我的代码进行广泛的修改,以使其工作。我将使用Document.Characters.First.Start和Document.Characters.Last.End范围,看看我是否可以对这些范围做些什么。字符的想法奏效了,现在它比您插入到当前页面之后