diff --git a/pptx_template/core.py b/pptx_template/core.py index a17e310..463c344 100644 --- a/pptx_template/core.py +++ b/pptx_template/core.py @@ -81,7 +81,9 @@ def remove_all_slides_having_id(presentation): unused_slides = [] for slide in presentation.slides: for shape in txt.select_all_text_shapes(slide): - slide_id = txt.extract_slide_id(shape.text) + slide_id = None + if hasattr(shape, 'text'): + slide_id = txt.extract_slide_id(shape.text) if slide_id: unused_slides.append((slide_id, slide)) break @@ -96,6 +98,6 @@ def get_slide(presentation, slide_id): """ for slide in presentation.slides: for shape in txt.select_all_text_shapes(slide): - if txt.extract_slide_id(shape.text) == slide_id: + if hasattr(shape, 'text') and txt.extract_slide_id(shape.text) == slide_id: return slide raise ValueError(u"slide id:%s not found" % slide_id) diff --git a/pptx_template/text.py b/pptx_template/text.py index da0f999..d1b967f 100644 --- a/pptx_template/text.py +++ b/pptx_template/text.py @@ -45,7 +45,14 @@ def search_first_el(text): def select_all_text_shapes(slide): - return [ s for s in slide.shapes if s.shape_type in [1,14,17] ] + collect = [] + for s in slide.shapes: + try: + if s.shape_type in [1, 14, 17]: + collect.append(s) + except Exception as err: + print(err) + return collect def select_all_tables(slide):