2012-06-25 4 views
1

MS Word interop에 문제가 있습니다. 나는 VC++을 사용하고 있지만 C#에서도 제안을 받아 들일 것입니다.Word 문서의 바닥 글 페이지 번호

SaveAs 메서드를 사용할 때 바닥 글에 주어진 페이지 번호를 가진 단어 문서에서 올바른 페이지 대신 임의의 페이지 번호가 나타나면 어느 것이 든 나를 도울 수 있습니다.

또한 행운과 함께 PageNumbers.GetStartNumber 및 Range.GetInformation 메소드를 사용해 보았습니다.

Word의 바닥 글에있는 실제 페이지 번호를 얻는 방법은 무엇입니까?

답변

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(); 
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