-
Notifications
You must be signed in to change notification settings - Fork 659
Open
Description
from PyPDF2 import PdfReader
from pptx import Presentation
from pptx.util import Inches, Pt
from pptx.enum.text import PP_ALIGN
from pptx.dml.color import RGBColor
import io
import os
المسار إلى الملف
pdf_file = "/mnt/data/Our world 5, Term1 Booklet.pdf"
إنشاء عرض تقديمي مبسط
prs = Presentation()
تعيين حجم الشريحة القياسي
prs.slide_width = Inches(10)
prs.slide_height = Inches(7.5)
قراءة PDF
reader = PdfReader(pdf_file)
معالجة أول 10 صفحات فقط لتقليل الحجم
for i, page in enumerate(reader.pages[:10]):
text = page.extract_text()
if not text:
continue
# إضافة شريحة
slide_layout = prs.slide_layouts[1] # تخطيط العنوان والمحتوى
slide = prs.slides.add_slide(slide_layout)
# تعيين العنوان
title_shape = slide.shapes.title
title_shape.text = f"الصفحة {i+1}"
title_shape.text_frame.paragraphs[0].font.size = Pt(24)
title_shape.text_frame.paragraphs[0].font.bold = True
# إضافة المحتوى
content_shape = slide.placeholders[1]
tf = content_shape.text_frame
tf.text = text[:1000] # تقليل كمية النص
# تنسيق النص
for paragraph in tf.paragraphs:
paragraph.font.size = Pt(14)
paragraph.font.name = "Arial"
حفظ الملف بحجم أصغر
simple_pptx = "/mnt/data/Simple_Presentation.pptx"
prs.save(simple_pptx)
Our world 5, Term1 Booklet.pdf
عرض حجم الملف
file_size = os.path.getsize(simple_pptx) / (1024 * 1024) # بالميغابايت
print(f"حجم الملف: {file_size:.2f} MB")
simple_pptx
Metadata
Metadata
Assignees
Labels
No labels