suprimedev commited on
Commit
f3fb6b1
·
verified ·
1 Parent(s): 7b2899d

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +7 -21
app.py CHANGED
@@ -1,9 +1,8 @@
1
  import gradio as gr
2
- import pymupdf
3
  import arabic_reshaper
4
  from bidi.algorithm import get_display
5
- import io
6
- import os
7
 
8
  def extract_text_from_pdf(pdf_file):
9
  """
@@ -14,8 +13,7 @@ def extract_text_from_pdf(pdf_file):
14
 
15
  try:
16
  # باز کردن فایل PDF
17
- pdf_document = pymupdf.open(pdf_file.name)
18
-
19
  all_text = []
20
 
21
  # استخراج متن از تمام صفحات
@@ -24,23 +22,20 @@ def extract_text_from_pdf(pdf_file):
24
  text = page.get_text()
25
 
26
  # پردازش متن برای نمایش صحیح فارسی/عربی
27
- # اگر متن حاوی کاراکترهای فارسی یا عربی است
28
  if any('\u0600' <= char <= '\u06FF' or '\u0750' <= char <= '\u077F' for char in text):
29
- # تغییر شکل حروف عربی/فارسی
30
  reshaped_text = arabic_reshaper.reshape(text)
31
- # تنظیم جهت متن
32
  bidi_text = get_display(reshaped_text)
33
  text = bidi_text
34
 
35
  all_text.append(f"--- صفحه {page_num + 1} ---\n{text}\n")
36
 
37
  pdf_document.close()
38
-
39
  return "\n".join(all_text)
40
 
41
  except Exception as e:
42
  return f"خطا در پردازش فایل: {str(e)}"
43
 
 
44
  def create_interface():
45
  """
46
  ایجاد رابط کاربری Gradio
@@ -86,8 +81,7 @@ def create_interface():
86
  label="متن استخراج شده",
87
  placeholder="متن استخراج شده در اینجا نمایش داده می‌شود...",
88
  lines=20,
89
- max_lines=30,
90
- rtl=True # برای نمایش بهتر متون راست به چپ
91
  )
92
 
93
  # اتصال تابع به دکمه
@@ -96,18 +90,10 @@ def create_interface():
96
  inputs=pdf_input,
97
  outputs=text_output
98
  )
99
-
100
- # مثال
101
- gr.Examples(
102
- examples=[],
103
- inputs=pdf_input,
104
- outputs=text_output,
105
- fn=extract_text_from_pdf
106
- )
107
 
108
  return interface
109
 
110
- # اجرای برنامه
111
  if __name__ == "__main__":
112
  interface = create_interface()
113
- interface.launch()
 
1
  import gradio as gr
2
+ import fitz # همان PyMuPDF
3
  import arabic_reshaper
4
  from bidi.algorithm import get_display
5
+
 
6
 
7
  def extract_text_from_pdf(pdf_file):
8
  """
 
13
 
14
  try:
15
  # باز کردن فایل PDF
16
+ pdf_document = fitz.open(pdf_file)
 
17
  all_text = []
18
 
19
  # استخراج متن از تمام صفحات
 
22
  text = page.get_text()
23
 
24
  # پردازش متن برای نمایش صحیح فارسی/عربی
 
25
  if any('\u0600' <= char <= '\u06FF' or '\u0750' <= char <= '\u077F' for char in text):
 
26
  reshaped_text = arabic_reshaper.reshape(text)
 
27
  bidi_text = get_display(reshaped_text)
28
  text = bidi_text
29
 
30
  all_text.append(f"--- صفحه {page_num + 1} ---\n{text}\n")
31
 
32
  pdf_document.close()
 
33
  return "\n".join(all_text)
34
 
35
  except Exception as e:
36
  return f"خطا در پردازش فایل: {str(e)}"
37
 
38
+
39
  def create_interface():
40
  """
41
  ایجاد رابط کاربری Gradio
 
81
  label="متن استخراج شده",
82
  placeholder="متن استخراج شده در اینجا نمایش داده می‌شود...",
83
  lines=20,
84
+ max_lines=30
 
85
  )
86
 
87
  # اتصال تابع به دکمه
 
90
  inputs=pdf_input,
91
  outputs=text_output
92
  )
 
 
 
 
 
 
 
 
93
 
94
  return interface
95
 
96
+
97
  if __name__ == "__main__":
98
  interface = create_interface()
99
+ interface.launch()