|
@@ -228,7 +228,7 @@ class WordExtractor(BaseExtractor):
|
|
|
def parse_paragraph(paragraph):
|
|
|
paragraph_content = []
|
|
|
for run in paragraph.runs:
|
|
|
- if run.element.tag.endswith('r'):
|
|
|
+ if hasattr(run.element, 'tag') and isinstance(element.tag, str) and run.element.tag.endswith('r'):
|
|
|
drawing_elements = run.element.findall(
|
|
|
'.//{http://schemas.openxmlformats.org/wordprocessingml/2006/main}drawing')
|
|
|
for drawing in drawing_elements:
|
|
@@ -248,13 +248,14 @@ class WordExtractor(BaseExtractor):
|
|
|
paragraphs = doc.paragraphs.copy()
|
|
|
tables = doc.tables.copy()
|
|
|
for element in doc.element.body:
|
|
|
- if element.tag.endswith('p'): # paragraph
|
|
|
- para = paragraphs.pop(0)
|
|
|
- parsed_paragraph = parse_paragraph(para)
|
|
|
- if parsed_paragraph:
|
|
|
- content.append(parsed_paragraph)
|
|
|
- elif element.tag.endswith('tbl'): # table
|
|
|
- table = tables.pop(0)
|
|
|
- content.append(self._table_to_markdown(table,image_map))
|
|
|
+ if hasattr(element, 'tag'):
|
|
|
+ if isinstance(element.tag, str) and element.tag.endswith('p'): # paragraph
|
|
|
+ para = paragraphs.pop(0)
|
|
|
+ parsed_paragraph = parse_paragraph(para)
|
|
|
+ if parsed_paragraph:
|
|
|
+ content.append(parsed_paragraph)
|
|
|
+ elif isinstance(element.tag, str) and element.tag.endswith('tbl'): # table
|
|
|
+ table = tables.pop(0)
|
|
|
+ content.append(self._table_to_markdown(table,image_map))
|
|
|
return '\n'.join(content)
|
|
|
|