def remove_slide_id(presentation, slide_id): """ 指定した id のスライドから {id:foobar} という形式の文字列を削除する """ slide = get_slide(presentation, slide_id) for shape in txt.select_all_text_shapes(slide): if txt.extract_slide_id(shape.text) == slide_id: shape.text = ''
def get_slide(presentation, slide_id): """ 指定した id に対して {id:foobar} という TextFrame を持つスライドを探す """ for slide in presentation.slides: for shape in txt.select_all_text_shapes(slide): if txt.extract_slide_id(shape.text) == slide_id: return slide raise ValueError(u"slide id:%s not found" % slide_id)
def remove_all_slides_having_id(presentation): """ {id:foobar} という文字列を持つすべてのスライドを削除する """ unused_slides = [] for slide in presentation.slides: for shape in txt.select_all_text_shapes(slide): slide_id = txt.extract_slide_id(shape.text) if slide_id: unused_slides.append((slide_id, slide)) break for slide_id, slide in unused_slides: log.info("Removing unused slide_id: %s" % slide_id) remove_slide(presentation, slide)