File size: 1,435 Bytes
81ffa61 8e28519 01a8107 81ffa61 f9d952e 81ffa61 3da2d8d f9d952e 01a8107 3da2d8d 8e28519 3da2d8d 8e28519 3da2d8d 8e28519 3da2d8d 8e28519 3da2d8d 8e28519 81ffa61 3da2d8d 6a7d286 3da2d8d f9d952e 3da2d8d 6a7d286 |
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 |
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. مناسب للعرض والطباعة."
)
|