updated
This commit is contained in:
35
pptx_to_images.py
Normal file
35
pptx_to_images.py
Normal file
@@ -0,0 +1,35 @@
|
||||
import os
|
||||
import sys
|
||||
import subprocess
|
||||
|
||||
def convert_pptx_to_images(input_file, output_folder):
|
||||
"""
|
||||
Converts a PowerPoint file (.ppt or .pptx) to images using LibreOffice.
|
||||
Each slide is saved as a separate image in the output folder.
|
||||
"""
|
||||
if not os.path.exists(output_folder):
|
||||
os.makedirs(output_folder)
|
||||
|
||||
# Convert the PowerPoint file to images using LibreOffice
|
||||
command = [
|
||||
'libreoffice',
|
||||
'--headless',
|
||||
'--convert-to', 'png',
|
||||
'--outdir', output_folder,
|
||||
input_file
|
||||
]
|
||||
try:
|
||||
subprocess.run(command, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||
print(f"PPTX file converted to images: {input_file}")
|
||||
except subprocess.CalledProcessError as e:
|
||||
print(f"Error converting PPTX to images: {e.stderr.decode()}")
|
||||
return False
|
||||
|
||||
# Rename the generated images to follow the naming convention
|
||||
base_name = os.path.splitext(os.path.basename(input_file))[0]
|
||||
png_files = sorted([f for f in os.listdir(output_folder) if f.endswith('.png') and base_name in f])
|
||||
for i, file_name in enumerate(png_files):
|
||||
new_name = f"{base_name}_{i + 1}.png"
|
||||
os.rename(os.path.join(output_folder, file_name), os.path.join(output_folder, new_name))
|
||||
print("Renamed slide images:", [f"{base_name}_{i + 1}.png" for i in range(len(png_files))])
|
||||
return True
|
||||
Reference in New Issue
Block a user