def generateImageFromFile(file_path, output_dir): 'Generates an image file from each slide. Returns the paths to the images.' presentation = PptxFile(file_path) no_of_slides = len(presentation.getSlides()) presentation.destroy() #Delete extracted folder image = Image() pptx = os.path.abspath(file_path) output_folder = os.path.abspath(output_dir) image_paths = image.generateFromPpt(pptx, output_folder, no_of_slides) return image_paths
def generateImageFromData(data, image_names): 'Generates an image file from each slide. Input is the binary data of the slide or deck' 'and a list of names. Renames the images and returns a list of paths.' temp_folder = relative_path("Files/Temp") bin = temp_folder + "/File.bin" pptx = temp_folder + "/File.pptx" if not (os.path.exists(temp_folder)): os.makedirs(temp_folder) open(bin,"wb").write(data) shutil.move(bin, pptx) presentation = PptxFile(pptx) no_of_slides = len(presentation.getSlides()) presentation.destroy() #Delete extracted folder image = Image() pptx_dir = os.path.abspath(pptx) temp_paths = image.generateFromPpt(pptx_dir, temp_folder, no_of_slides) n = len(temp_paths) if (len(image_names) != n): for i in xrange (0, n): os.remove(temp_paths[i]) raise Exception ("Amount of generated slides differs from lenght of input parameter") for i in xrange (0, n): shutil.move(temp_paths[i], image_names[i]) os.remove(pptx) return image_names