我在MS Word互操作中遇到问题。我正在使用VC ++,但我也接受C#中的建议。
在我使用SaveAs方法时在页脚中给出页码的单词文档中,我得到一个随机页码,而不是正确的,任何人都可以帮助我。
我也尝试过使用PageNumbers.GetStartNumber和Range.GetInformation方法而没有运气。
如何从Word中获取页脚中的实际页码?
答案 0 :(得分: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
答案 1 :(得分: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();