euler314 commited on
Commit
847c166
Β·
verified Β·
1 Parent(s): 9400e6b

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +47 -0
app.py ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import tempfile
3
+
4
+ import gradio as gr
5
+ from magic_pdf.data.data_reader_writer import (
6
+ FileBasedDataReader,
7
+ FileBasedDataWriter
8
+ )
9
+ from magic_pdf.data.dataset import PymuDocDataset
10
+ from magic_pdf.model.doc_analyze_by_custom_model import doc_analyze
11
+ from magic_pdf.config.enums import SupportedPdfParseMethod
12
+
13
+ def pdf_to_markdown(uploaded_pdf):
14
+ # Save the uploaded file to a temp location
15
+ pdf_path = uploaded_pdf.name
16
+ # Prepare output dirs
17
+ img_dir = os.path.join(tempfile.gettempdir(), "magic_pdf_images")
18
+ os.makedirs(img_dir, exist_ok=True)
19
+
20
+ # Read bytes
21
+ reader = FileBasedDataReader("")
22
+ pdf_bytes = reader.read(pdf_path)
23
+
24
+ # Build dataset & run inference
25
+ ds = PymuDocDataset(pdf_bytes)
26
+ if ds.classify() == SupportedPdfParseMethod.OCR:
27
+ infer = ds.apply(doc_analyze, ocr=True)
28
+ pipe = infer.pipe_ocr_mode(FileBasedDataWriter(img_dir))
29
+ else:
30
+ infer = ds.apply(doc_analyze, ocr=False)
31
+ pipe = infer.pipe_txt_mode(FileBasedDataWriter(img_dir))
32
+
33
+ # Get Markdown string
34
+ md = pipe.get_markdown(os.path.basename(img_dir))
35
+ return md
36
+
37
+ # Gradio UI
38
+ iface = gr.Interface(
39
+ fn=pdf_to_markdown,
40
+ inputs=gr.File(file_types=[".pdf"], label="Upload PDF"),
41
+ outputs=gr.Textbox(lines=20, label="Markdown"),
42
+ title="PDF β†’ Markdown Converter",
43
+ description="Powered by Magic-PDF"
44
+ )
45
+
46
+ if __name__ == "__main__":
47
+ iface.launch()