Spaces:
Runtime error
Runtime error
File size: 1,936 Bytes
726da04 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
import gradio as gr
from pptx import Presentation
from pptx.util import Inches
import pdfplumber
from transformers import pipeline
import tempfile
# Initialize the summarization model
summarizer = pipeline("summarization", model="facebook/bart-large-cnn")
# Function to process PDF and create PowerPoint
def pdf_to_pptx(pdf_file):
# Step 1: Extract text from the PDF
pdf_text = ""
with pdfplumber.open(pdf_file) as pdf:
for page in pdf.pages:
pdf_text += page.extract_text()
# Step 2: Summarize text
def chunk_text(text, max_len=1024):
return [text[i:i+max_len] for i in range(0, len(text), max_len)]
chunked_text = chunk_text(pdf_text)
summarized_text = " ".join([summarizer(chunk)[0]['summary_text'] for chunk in chunked_text])
# Step 3: Create PowerPoint presentation
presentation = Presentation()
slide_content = summarized_text.split(". ")
for i, content in enumerate(slide_content):
slide = presentation.slides.add_slide(presentation.slide_layouts[1]) # Title and Content layout
title = slide.shapes.title
body = slide.placeholders[1]
title.text = f"Slide {i+1}" # Slide title
body.text = content # Slide content
# Step 4: Save presentation to a temporary file and return path
temp_pptx = tempfile.NamedTemporaryFile(delete=False, suffix=".pptx")
presentation.save(temp_pptx.name)
return temp_pptx.name
# Gradio app interface
def generate_pptx(pdf_file):
pptx_file_path = pdf_to_pptx(pdf_file.name)
return pptx_file_path
# Define Gradio interface
interface = gr.Interface(
fn=generate_pptx,
inputs=gr.File(label="Upload PDF File"),
outputs=gr.File(label="Download PowerPoint Presentation"),
title="PDF to PowerPoint Converter",
description="Upload a PDF file to convert it into a professional PowerPoint presentation."
)
# Launch the app
interface.launch()
|