forked from python-openxml/python-docx
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathparagraph.py
More file actions
78 lines (66 loc) · 1.86 KB
/
paragraph.py
File metadata and controls
78 lines (66 loc) · 1.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# encoding: utf-8
"""
Custom element classes related to paragraphs (CT_P).
"""
from ..ns import qn
from ..xmlchemy import BaseOxmlElement, OxmlElement, ZeroOrMore, ZeroOrOne
class CT_P(BaseOxmlElement):
"""
``<w:p>`` element, containing the properties and text for a paragraph.
"""
pPr = ZeroOrOne('w:pPr')
r = ZeroOrMore('w:r')
def _insert_pPr(self, pPr):
self.insert(0, pPr)
return pPr
def add_p_before(self):
"""
Return a new ``<w:p>`` element inserted directly prior to this one.
"""
new_p = OxmlElement('w:p')
self.addprevious(new_p)
return new_p
@property
def alignment(self):
"""
The value of the ``<w:jc>`` grandchild element or |None| if not
present.
"""
pPr = self.pPr
if pPr is None:
return None
return pPr.jc_val
@alignment.setter
def alignment(self, value):
pPr = self.get_or_add_pPr()
pPr.jc_val = value
def clear_content(self):
"""
Remove all child elements, except the ``<w:pPr>`` element if present.
"""
for child in self[:]:
if child.tag == qn('w:pPr'):
continue
self.remove(child)
def set_sectPr(self, sectPr):
"""
Unconditionally replace or add *sectPr* as a grandchild in the
correct sequence.
"""
pPr = self.get_or_add_pPr()
pPr._remove_sectPr()
pPr._insert_sectPr(sectPr)
@property
def style(self):
"""
String contained in w:val attribute of ./w:pPr/w:pStyle grandchild,
or |None| if not present.
"""
pPr = self.pPr
if pPr is None:
return None
return pPr.style
@style.setter
def style(self, style):
pPr = self.get_or_add_pPr()
pPr.style = style