From e87bf9ae068bc85bf26028124d245172156bd57e Mon Sep 17 00:00:00 2001 From: Maxim Lysak Date: Mon, 14 Oct 2024 16:20:17 +0200 Subject: [PATCH] Updated pptx backend, fixes issues with lists, also added more different list cases to example Signed-off-by: Maxim Lysak --- docling/backend/mspowerpoint_backend.py | 57 ++++++++++++++++++------ tests/data/powerpoint_sample.pptx | Bin 41639 -> 43304 bytes 2 files changed, 43 insertions(+), 14 deletions(-) diff --git a/docling/backend/mspowerpoint_backend.py b/docling/backend/mspowerpoint_backend.py index 9e37465e..b4f9f790 100644 --- a/docling/backend/mspowerpoint_backend.py +++ b/docling/backend/mspowerpoint_backend.py @@ -127,6 +127,7 @@ class MsPowerpointDocumentBackend(DeclarativeDocumentBackend, PaginatedDocumentB is_a_list = True else: is_a_list = False + if paragraph.level > 0: # Most likely a sub-list is_a_list = True @@ -135,17 +136,28 @@ class MsPowerpointDocumentBackend(DeclarativeDocumentBackend, PaginatedDocumentB prov = self.generate_prov(shape, slide_ind, shape.text.strip()) if is_a_list: - # TODO: determine if this is an unordered list or an ordered list. - # Set GroupLabel.ORDERED_LIST when it fits. + # Determine if this is an unordered list or an ordered list. + # Set GroupLabel.ORDERED_LIST when it fits. + list_label = GroupLabel.LIST + if bullet_type == "Numbered": + list_label = GroupLabel.ORDERED_LIST + new_list = doc.add_group( - label=GroupLabel.LIST, name=f"list", parent=parent_slide + label=list_label, name=f"list", parent=parent_slide ) else: new_list = None - # for element in p.iter(): + if is_a_list: + _log.info("LIST DETECTED!") + else: + _log.info("No List") + + # for e in p.iter(): for e in p.iterfind(".//a:r", namespaces={"a": self.namespaces["a"]}): if len(e.text.strip()) > 0: + e_is_a_list_item = False + if ( p.find(".//a:buChar", namespaces={"a": self.namespaces["a"]}) is not None @@ -165,14 +177,28 @@ class MsPowerpointDocumentBackend(DeclarativeDocumentBackend, PaginatedDocumentB # TODO: Set marker and enumerated arguments if this is an enumeration element. doc.add_list_item( parent=new_list, - text=e.text.strip(), + text=list_text, prov=prov, ) else: + # Assign proper label to the text, depending if it's a Title or Section Header + # For other types of text, assign - PARAGRAPH + doc_label = DocItemLabel.PARAGRAPH + if shape.is_placeholder: + placeholder_type = shape.placeholder_format.type + if placeholder_type in [ + PP_PLACEHOLDER.CENTER_TITLE, + PP_PLACEHOLDER.TITLE, + ]: + # It's a title + doc_label = DocItemLabel.TITLE + elif placeholder_type == PP_PLACEHOLDER.SUBTITLE: + DocItemLabel.SECTION_HEADER + doc.add_text( - label=DocItemLabel.PARAGRAPH, + label=doc_label, parent=parent_slide, - text=e.text.strip(), + text=list_text, prov=prov, ) return @@ -317,13 +343,16 @@ class MsPowerpointDocumentBackend(DeclarativeDocumentBackend, PaginatedDocumentB _log.warn("Warning: shape has text but not text_frame") continue - if shape.is_placeholder: - # Handle Titles (Headers) and Subtitles - # Check if the shape is a placeholder (titles are placeholders) - self.handle_title(shape, parent_slide, slide_ind, doc) - else: - # Handle other text elements, including lists (bullet lists, numbered lists) - self.handle_text_elements(shape, parent_slide, slide_ind, doc) + # if shape.is_placeholder: + # Handle Titles (Headers) and Subtitles + # Check if the shape is a placeholder (titles are placeholders) + # self.handle_title(shape, parent_slide, slide_ind, doc) + # self.handle_text_elements(shape, parent_slide, slide_ind, doc) + # else: + + # Handle other text elements, including lists (bullet lists, numbered lists) + self.handle_text_elements(shape, parent_slide, slide_ind, doc) + # figures... # doc.add_figure(data=BaseFigureData(), parent=self.parents[self.level], caption=None) diff --git a/tests/data/powerpoint_sample.pptx b/tests/data/powerpoint_sample.pptx index 9779aa6c2fcf8c951063a8acd713c93dacf41e5a..78a54f9b97e8c5cbcd73df85182984e288991c4d 100644 GIT binary patch delta 20443 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 Yy