如何将页面编号设置为从Word中的选定值开始

时间:2013-07-20 16:39:47

标签: c# ms-word

我正在使用此代码在生成的Word文档中设置自动枚举,但它工作正常,但我需要从特定值开始计算,例如page_1 - 3,page_2 - 4,page_3 - 5等

//define currentpage object
object currentPage = WdFieldType.wdFieldPage;

activeWindow.ActivePane.View.SeekView = WdSeekView.wdSeekCurrentPageFooter;

//set alignment  
activeWindow.ActivePane.Selection.Paragraphs.Alignment = WdParagraphAlignment.wdAlignParagraphLeft;

//Add page number  
activeWindow.Selection.Fields.Add(activeWindow.Selection.Range, ref currentPage, ref oMissing, ref oMissing);

在Word中,您可以通过“插入 - >页码 - >格式页码 - >设置”开始于“ C#中有相同的属性吗?

解决! 我们所要做的就是设置这个2属性:

activeWindow.ActivePane.Selection.HeaderFooter.PageNumbers.RestartNumberingAtSection = true;               
activeWindow.ActivePane.Selection.HeaderFooter.PageNumbers.StartingNumber = 666;

1 个答案:

答案 0 :(得分:2)

我知道找出在Word中处理内容的方法的最好方法是录制宏,然后查看生成的代码。这是VB,但将其转换为C#非常容易。 在Word 2007中,如果我录制一个更改Start的宏,那么你正在谈论我正在获得以下宏 -

 Sub Macro1()
    '
    ' Macro1 Macro
    '
    '
        With Selection.Sections(1).Headers(1).PageNumbers
            .NumberStyle = wdPageNumberStyleArabic
            .HeadingLevelForChapter = 0
            .IncludeChapterNumber = False
            .ChapterPageSeparator = wdSeparatorHyphen
            .RestartNumberingAtSection = True
            .StartingNumber = 3
        End With
    End Sub

您只对更改StartingNumber属性感兴趣,而且转换为C#非常简单。