def val(self): """ The underline type corresponding to the ``w:val`` attribute value. """ underline_type_map = { None: None, 'none': False, 'single': True, 'words': WD_UNDERLINE.WORDS, 'double': WD_UNDERLINE.DOUBLE, 'dotted': WD_UNDERLINE.DOTTED, 'thick': WD_UNDERLINE.THICK, 'dash': WD_UNDERLINE.DASH, 'dotDash': WD_UNDERLINE.DOT_DASH, 'dotDotDash': WD_UNDERLINE.DOT_DOT_DASH, 'wave': WD_UNDERLINE.WAVY, 'dottedHeavy': WD_UNDERLINE.DOTTED_HEAVY, 'dashedHeavy': WD_UNDERLINE.DASH_HEAVY, 'dashDotHeavy': WD_UNDERLINE.DOT_DASH_HEAVY, 'dashDotDotHeavy': WD_UNDERLINE.DOT_DOT_DASH_HEAVY, 'wavyHeavy': WD_UNDERLINE.WAVY_HEAVY, 'dashLong': WD_UNDERLINE.DASH_LONG, 'wavyDouble': WD_UNDERLINE.WAVY_DOUBLE, 'dashLongHeavy': WD_UNDERLINE.DASH_LONG_HEAVY, } val = self.get(qn('w:val')) return underline_type_map[val]
def style(self): """ String contained in <w:pStyle> child, or None if that element is not present. """ pStyle = self.pStyle if pStyle is None: return None return pStyle.get(qn('w:val'))
def add_t(self, text): """ Return a newly added CT_T (<w:t>) element containing *text*. """ t = CT_Text.new(text) if len(text.strip()) < len(text): t.set(qn('xml:space'), 'preserve') self.append(t) return t
def first_child_found_in(self, *tagnames): """ Return the first child found with tag in *tagnames*, or None if not found. """ for tagname in tagnames: child = self.find(qn(tagname)) if child is not None: return child return None
def new(cls, num_id, abstractNum_id): """ Return a new ``<w:num>`` element having numId of *num_id* and having a ``<w:abstractNumId>`` child with val attribute set to *abstractNum_id*. """ abstractNumId = CT_DecimalNumber.new('w:abstractNumId', abstractNum_id) num = OxmlElement('w:num', {qn('w:numId'): str(num_id)}) num.append(abstractNumId) return num
def new(cls, num_id, abstractNum_id): """ Return a new ``<w:num>`` element having numId of *num_id* and having a ``<w:abstractNumId>`` child with val attribute set to *abstractNum_id*. """ abstractNumId = CT_DecimalNumber.new( 'w:abstractNumId', abstractNum_id ) num = OxmlElement('w:num', {qn('w:numId'): str(num_id)}) num.append(abstractNumId) return num
def _sentinel_sectPr(self): """ Return ``<w:sectPr>`` element appearing as last child, or None if not found. Note that the ``<w:sectPr>`` element can also occur earlier in the body; here we're only interested in one occuring as the last child. """ if len(self) == 0: sentinel_sectPr = None elif self[-1].tag != qn('w:sectPr'): sentinel_sectPr = None else: sentinel_sectPr = self[-1] return sentinel_sectPr
def val(self, value): underline_vals = { True: 'single', False: 'none', WD_UNDERLINE.WORDS: 'words', WD_UNDERLINE.DOUBLE: 'double', WD_UNDERLINE.DOTTED: 'dotted', WD_UNDERLINE.THICK: 'thick', WD_UNDERLINE.DASH: 'dash', WD_UNDERLINE.DOT_DASH: 'dotDash', WD_UNDERLINE.DOT_DOT_DASH: 'dotDotDash', WD_UNDERLINE.WAVY: 'wave', WD_UNDERLINE.DOTTED_HEAVY: 'dottedHeavy', WD_UNDERLINE.DASH_HEAVY: 'dashedHeavy', WD_UNDERLINE.DOT_DASH_HEAVY: 'dashDotHeavy', WD_UNDERLINE.DOT_DOT_DASH_HEAVY: 'dashDotDotHeavy', WD_UNDERLINE.WAVY_HEAVY: 'wavyHeavy', WD_UNDERLINE.DASH_LONG: 'dashLong', WD_UNDERLINE.WAVY_DOUBLE: 'wavyDouble', WD_UNDERLINE.DASH_LONG_HEAVY: 'dashLongHeavy', } val = underline_vals[value] self.set(qn('w:val'), val)
def remove_u(self): u_lst = self.findall(qn('w:u')) for u in u_lst: self.remove(u)
def remove_smallCaps(self): smallCaps_lst = self.findall(qn('w:smallCaps')) for smallCaps in smallCaps_lst: self.remove(smallCaps)
def remove_specVanish(self): specVanish_lst = self.findall(qn('w:specVanish')) for specVanish in specVanish_lst: self.remove(specVanish)
def vanish(self): """ First ``<w:vanish>`` child element or None if none are present. """ return self.find(qn('w:vanish'))
def remove_rtl(self): rtl_lst = self.findall(qn('w:rtl')) for rtl in rtl_lst: self.remove(rtl)
def smallCaps(self): """ First ``<w:smallCaps>`` child element or None if none are present. """ return self.find(qn('w:smallCaps'))
def u(self): """ First ``<w:u>`` child element or |None| if none are present. """ return self.find(qn('w:u'))
def graphic(self): return self.find(qn('a:graphic'))
def pPr(self): return self.find(qn('w:pPr'))
def pic(self): return self.find(qn('pic:pic'))
def extent(self): return self.find(qn('wp:extent'))
def graphicData(self): return self.find(qn('a:graphicData'))
def blip(self): return self.find(qn('a:blip'))
def new(cls, rId): blip = OxmlElement('a:blip') blip.set(qn('r:embed'), rId) return blip
def remove_webHidden(self): webHidden_lst = self.findall(qn('w:webHidden')) for webHidden in webHidden_lst: self.remove(webHidden)
def id(self): return self.attrib.get(qn('w:styleId'))
def rtl(self): """ First ``<w:rtl>`` child element or None if none are present. """ return self.find(qn('w:rtl'))
def name(self): el = self.find(qn('w:name')) if el is not None: return el.attrib.get(qn('w:val'))
def strike(self): """ First ``<w:strike>`` child element or None if none are present. """ return self.find(qn('w:strike'))
def style_lst(self): """ List of <w:style> child elements. """ return self.findall(qn('w:style'))
def webHidden(self): """ First ``<w:webHidden>`` child element or None if none are present. """ return self.find(qn('w:webHidden'))
def body(self): return self.find(qn('w:body'))
def link(self): return self.get(qn('r:link'))
def p_lst(self): """ List of <w:p> child elements. """ return self.findall(qn('w:p'))
def remove_shadow(self): shadow_lst = self.findall(qn('w:shadow')) for shadow in shadow_lst: self.remove(shadow)
def tbl_lst(self): """ List of <w:tbl> child elements. """ return self.findall(qn('w:tbl'))
def remove_snapToGrid(self): snapToGrid_lst = self.findall(qn('w:snapToGrid')) for snapToGrid in snapToGrid_lst: self.remove(snapToGrid)
def blipFill(self): return self.find(qn('pic:blipFill'))
def remove_strike(self): strike_lst = self.findall(qn('w:strike')) for strike in strike_lst: self.remove(strike)
def r_lst(self): """ Sequence containing a reference to each run element in this paragraph. """ return self.findall(qn('w:r'))
def remove_vanish(self): vanish_lst = self.findall(qn('w:vanish')) for vanish in vanish_lst: self.remove(vanish)
def p_lst(self): return self.findall(qn('w:p'))
def rStyle(self): """ ``<w:rStyle>`` child element or None if not present. """ return self.find(qn('w:rStyle'))
def id(self): return int(self.attrib.get(qn('w:id')))
def shadow(self): """ First ``<w:shadow>`` child element or None if none are present. """ return self.find(qn('w:shadow'))
def snapToGrid(self): """ First ``<w:snapToGrid>`` child element or None if none are present. """ return self.find(qn('w:snapToGrid'))
def pPr(self): """ ``<w:pPr>`` child element or None if not present. """ return self.find(qn('w:pPr'))
def remove_noProof(self): noProof_lst = self.findall(qn('w:noProof')) for noProof in noProof_lst: self.remove(noProof)
def remove_oMath(self): oMath_lst = self.findall(qn('w:oMath')) for oMath in oMath_lst: self.remove(oMath)
def remove_outline(self): outline_lst = self.findall(qn('w:outline')) for outline in outline_lst: self.remove(outline)
def type(self): return self.attrib.get(qn('w:type'))
def embed(self): return self.get(qn('r:embed'))