pdf / app.py
mrdilaw's picture
Update app.py
f9d952e verified
import gradio as gr
import fitz # PyMuPDF
from docx import Document
from docx.shared import Inches
import os
import uuid
import traceback
def convert_pdf_to_word(pdf_bytes):
try:
# حفظ الملف المرفوع
temp_pdf_path = f"{uuid.uuid4()}.pdf"
with open(temp_pdf_path, "wb") as f:
f.write(pdf_bytes)
# فتح ملف PDF
doc = fitz.open(temp_pdf_path)
document = Document()
for i in range(len(doc)):
page = doc.load_page(i)
pix = page.get_pixmap(dpi=150)
img_path = f"page_{i}.png"
pix.save(img_path)
document.add_paragraph(f"📄 صفحة {i+1}")
document.add_picture(img_path, width=Inches(6))
os.remove(img_path)
# حفظ الملف النهائي
output_path = f"{uuid.uuid4()}.docx"
document.save(output_path)
os.remove(temp_pdf_path)
return output_path
except Exception as e:
return f"❌ خطأ: \n{traceback.format_exc()}"
app = gr.Interface(
fn=convert_pdf_to_word,
inputs=gr.File(label="📤 ارفع ملف PDF", type="binary"),
outputs=gr.File(label="📥 تحميل Word"),
title="🔁 محول PDF إلى Word (بالصور)",
description="حول صفحات PDF إلى صور وادمجها تلقائيًا داخل مستند Word. مناسب للعرض والطباعة."
)