1

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

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

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

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

4

2 回答 2

1

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

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
于 2012-06-25T20:30:59.297 回答
1

谢谢,我能够使用此代码解决它。在 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();
于 2012-06-26T05:54:21.810 回答