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. ู…ู†ุงุณุจ ู„ู„ุนุฑุถ ูˆุงู„ุทุจุงุนุฉ."
)