2017-03-15 2 views
2

python32.client 확장을 사용하여 Python과 Word 문서를 작성하고 있습니다. ToC를 생성하는 데 꽤 많은 수의 메소드를 시도했지만 모두 실패했습니다.Word & Python - 목차 생성

나는 내가하고 싶은 것은 MSDN 페이지에서이 예와 같이 뭔가 하나를에서는 ActiveDocument 개체를 호출하고 만들 생각 : 그것은 것 파이썬에서 제외

Set myRange = ActiveDocument.Range(Start:=0, End:=0) 
ActiveDocument.TablesOfContents.Add Range:=myRange, _ 
UseFields:=False, UseHeadingStyles:=True, _ 
LowerHeadingLevel:=3, _ 
UpperHeadingLevel:=1 

뭔가 같은 :

wordObject.ActiveDocument.TableOfContents.Add(Range=???,UseFiles=False, UseHeadingStyles=True, LowerHeadingLevel=3, UpperHeadingLevel=1) 

'Selection'개체 (아래 예 참조)를 사용하여 모든 것을 작성했으며 첫 번째 페이지 나누기 후에이 ToC를 추가하려고합니다.

objWord = win32com.client.Dispatch("Word.Application") 
objDoc = objWord.Documents.Open('pathtotemplate.docx') # 
objSel = objWord.Selection 
#These seem to work but I don't know why... 
objWord.ActiveDocument.Sections(1).Footers(1).PageNumbers.Add(1,True) 
objWord.ActiveDocument.Sections(1).Footers(1).PageNumbers.NumberStyle = 57 
objSel.Style = objWord.ActiveDocument.Styles("Heading 1") 
objSel.TypeText("TITLE PAGE AND STUFF") 
objSel.InsertParagraph() 
objSel.TypeText("Some data or another" 
objSel.TypeParagraph() 
objWord.Selection.InsertBreak() 
####INSERT TOC HERE#### 

이 어떤 도움을 크게 감상 할 수있다 :

여기에 문서 같은 모습의 샘플입니다! 완벽한 세계에서 나는 Word GUI에서 사용할 수있는 기본 첫 번째 옵션을 사용 하겠지만 파일을 가리키고 액세스하기가 더 어려워 보인다 (템플릿에 관한 것).

감사

+0

헤더 구조에서 toc가 자동으로 생성되므로 템플릿에 토큰을 삽입하고 해당 템플릿에서 문서를 만드는 것이 어떻습니까? – barny

+0

@barny 어떻게 두 번째 페이지를 고수 할 수 있습니까? 'WordObject.Selection.action()'구조체를 사용할 때, 필자는 문서를 작성할 때 문서를 작성한다. ToC를 템플릿에 넣으면 오른쪽 아래로 밀어 넣을 것입니까? 페이지 1의 상단에서 선택 시작을 지정할 수있는 방법이 있습니까? 그렇다면 ToC 다음으로 건너 뛰십시오. – Abraxas

+1

3 페이지 (또는 어디서나)의 템플릿에 북마크/마커를 넣으십시오. 그런 다음 코드에서 마커를 검색하면 콘텐츠를 추가 할 수 있습니다. 그런 다음 템플릿, 머리글/바닥 글, 스타일, 그래픽 등에 원하는 다른 서식을 넣을 수 있습니다. 코드가 전혀 없습니다. 이렇게하면 누군가가 "표준 글꼴을 더 크게하고 싶습니다"라고 말하면 템플릿 편집만으로 코드 줄을 변경할 필요가 없습니다. 특수한 경우를 제외하고 대부분의 서식 지정에 스타일을 사용하고 특정 (직접 코드화 된) 서식을 지정하지 않습니다. 맞습니까? 그리고 고객이 매우 행복합니다. – barny

답변

1

편집 Word에서 템플릿 (처음에는 비어 있습니다) 목차를 추가, 그럼 당신이 원하는 위치에 텍스트 콘텐츠 (즉 TOC 후) 삽입 된 고유 한 이름의 북마크를 넣어. 그런 다음 코드에서 템플릿을 기반으로 새 문서를 만들거나 템플릿을 열고 다른 이름으로 저장 한 다음 책갈피를 검색하여 거기에 내용을 삽입하십시오. 다른 파일 이름으로 저장하십시오.

이 방법에는 모든 코드 세부 정보를 작성하는 대신 Word에서 서식 파일을 서식을 지정할 수 있으므로 일반 글꼴을 원하는대로 스타일을 업데이트하기 위해 서식을 쉽게 편집 할 수 있습니다 큰/작은/핑크 당신은 템플릿을 편집하여 그것을 할 수 있습니다. 코드에서 스타일을 사용하고 특히 기본 스타일과 다른 경우에만 서식을 적용하십시오.

ToC가 실제로 생성되었는지 확인하는 방법이 확실하지 않은 경우 모든 저장시 자동으로 업데이트 될 수 있습니다.

+0

시도 했습니까/작동 했습니까? – barny