C# MS Word分页符插入错误位置
我在VS2008中完全通过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
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范围,看看我是否可以对这些范围做些什么。字符的想法奏效了,现在它比您插入到当前页面之后