2016-07-15 2 views
1

일부 문서를 생성하는 데 python-docx을 사용하고 있습니다.python-docx를 사용하여 docx 문서 섹션에 줄 번호를 추가하는 방법

문서 섹션 (OOXML 표준)에 적용 할 수있는 line numbering property이 있음을 알 수 있습니다.

이 속성은 python-docx API에 없습니다.

기본 sectPr 필드에 액세스하여 lnNumType 태그를 추가 할 수 있다고 가정하고 있지만 쉽게 찾을 수 없었습니다.

표준을 혼란스럽게합니까? 또는 내 질문은 조금 어둡습니까? 당신이 구글 '파이썬 - DOCX 해결 기능 OxmlElement'에 당신이 예를 찾을 경우

sectPr = section._sectPr 

: 당신이 섹션 객체가 있으면

+0

구현이 https://github.com/에 있습니다 :

sectPr.insert_element_before(lnNumType, ( 'w:pgNumType', 'w:pgNumType', 'w:cols', 'w:formProt', 'w:vAlign', 'w:noEndnote', 'w:titlePg', 'w:textDirection', 'w:bidi', 'w:rtlGutter', 'w:docGrid', 'w:printerSettings', 'w:sectPrChange', )) 

당신이있어 .insert_element_before()의 구현을 볼 수 있습니다 python-openxml/python-docx/blob/master/docx/oxml/section.py; https://github.com/python-openxml/python-docx/blob/master/docx/oxml/xmlchemy.py도 참조하십시오. 나는 접근자를 보지 못했다. – cxw

답변

1

, 당신은 함께 있으며 sectPr 요소를 얻을 수 있습니다. 모든 요소는 lxml _Element에서 상속되므로 lxml 조작이 가능합니다. BaseOxmlElement에 의해 추가 된 편리한 메소드가 있습니다. 기본 요점은 다음과 같습니다 순서는 거의 항상 처방으로

sectPr = section._sectPr 
lnNumType = OxmlElement('w:lnNumType') 
lnNumType.set('fooAttrib', '42') 
sectPr.append(lnNumType) 

많은 경우에 당신은 올바른 순서에 새로운 자식 요소를 얻기에 참석해야합니다.

당신은 여기 w:sectPr 요소의 몇 가지 편리한 분석을 찾을 수 있습니다 그것은 당신이 그것을 따라 요소가 적은만큼 단지 끝에 w:lnNumType를 추가 할 수 있습니다 빠른 눈에서 보이는 http://python-docx.readthedocs.io/en/latest/dev/analysis/features/sections.html

공유지. 하지만 당신은 더 엄격하기를 원한다면 당신은 sectPr.append() 대신이를 사용할 수 있습니다 제의 https://github.com/python-openxml/python-docx/blob/master/docx/oxml/xmlchemy.py#L718