【问题标题】:Footer page number from Word documentWord 文档中的页脚页码
【发布时间】:2012-06-26 18:06:34
【问题描述】:

我在 MS Word 互操作中遇到问题。我正在使用 VC++,但我也会接受 C# 中的建议。

当我使用 SaveAs 方法时,在页脚中给出页码的 word 文档中,我得到一个随机页码而不是正确的页码,任何人都可以帮助我。

我也尝试过使用 PageNumbers.GetStartNumber 和 Range.GetInformation 方法,但没有成功。

如何从 Word 中获取页脚中的实际页码?

【问题讨论】:

    标签: c# vb.net visual-c++ vba ms-office


    【解决方案1】:

    这不是 C# 或 VC++,但 VBA 版本会这样。页码可能是一个字段,因此如果有,请使用 Selection。

    Public Sub GetPageNumber()
        On Error GoTo MyErrorHandler
    
        Dim currentDocument As Document
        Set currentDocument = ActiveDocument
    
        Debug.Print Selection.Sections(1).Footers(wdHeaderFooterPrimary).Range.Text 'Or...
        Debug.Print Selection.Sections(1).Footers(wdHeaderFooterPrimary).Range.Fields(1).Result
    
        Exit Sub
    
    MyErrorHandler:
        MsgBox "GetPageNumber" & vbCrLf & vbCrLf & "Err = " & Err.Number & vbCrLf & "Description: " & Err.Description
    End Sub
    

    【讨论】:

      【解决方案2】:

      谢谢,我能够使用此代码解决它。在VC++中

      Selection oSelection = m_oApp.GetSelection();
      Sections ss = oSelection.GetSections();
      Section s = ss.GetFirst();
      HeadersFooters hf = s.GetHeaders();
      HeaderFooter hfItem = hf.Item(1);
      PageNumbers ps = hfItem.GetPageNumbers();
      
      //to get the First pageNumber
      
      long nNo = ps.GetStartingNumber();
      HeadersFooters footers = s.GetFooters();
      HeaderFooter footer = footers.Item(1);
      Range r = footer.GetRange();
      
      //to get the First page footer text
      CString strFooterText = r.GetText();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-18
        • 1970-01-01
        • 2015-03-19
        相关资源
        最近更新 更多