README_zh-CN.md 3.26 KB
Newer Older
赵小蒙's avatar
赵小蒙 committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<div id="top"></div>
<div align="center">

[![stars](https://img.shields.io/github/stars/magicpdf/Magic-PDF.svg)](https://github.com/magicpdf/Magic-PDF)
[![forks](https://img.shields.io/github/forks/magicpdf/Magic-PDF.svg)](https://github.com/magicpdf/Magic-PDF)
[![license](https://img.shields.io/github/license/magicpdf/Magic-PDF.svg)](https://github.com/magicpdf/Magic-PDF/tree/main/LICENSE)
[![issue resolution](https://img.shields.io/github/issues-closed-raw/magicpdf/Magic-PDF)](https://github.com/magicpdf/Magic-PDF/issues)
[![open issues](https://img.shields.io/github/issues-raw/magicpdf/Magic-PDF)](https://github.com/magicpdf/Magic-PDF/issues)

[English](README.md) | [简体中文](README_zh-CN.md)

</div>

<div align="center">

</div>

# Magic-PDF

赵小蒙's avatar
赵小蒙 committed
20
## 简介
赵小蒙's avatar
赵小蒙 committed
21
22
23
24
25
26
27
28

Magic-PDF 是一款将 PDF 转化为 markdown 格式的工具。支持转换本地文档或者位于支持S3协议对象存储上的文件。

主要功能包含

- 支持多种前端模型输入
- 删除页眉、页脚、脚注、页码等元素
- 符合人类阅读顺序的排版格式
赵小蒙's avatar
赵小蒙 committed
29
- 保留原文档的结构和格式,包括标题、段落、列表等
赵小蒙's avatar
赵小蒙 committed
30
31
32
33
34
35
- 提取图像和表格并在markdown中展示
- 将公式转换成latex
- 乱码PDF自动识别并转换
- 支持cpu和gpu环境
- 支持windows/linux/mac平台

赵小蒙's avatar
赵小蒙 committed
36
37
38
39
## 项目全景

![项目全景图](docs/images/project_panorama_zh_cn.png)

赵小蒙's avatar
赵小蒙 committed
40
41
42
43
44
45
46
47
48
## 流程图

```mermaid
graph LR
       A[PDF文件] --> B("步骤1: 使用模型分析PDF")
       click B "https://github.com/wangbinDL/pdf-extract-kit" "模型仓库"
       B --> C("步骤2: 使用magic-pdf解析PDF")
       C --> D[Markdown文档]
       D --> E("步骤3: 使用Benchmark/质检工具测试转换质量")
赵小蒙's avatar
赵小蒙 committed
49
       click E "https://github.com/opendatalab/Miner-PDF-Benchmark" "Benchmark仓库"
赵小蒙's avatar
赵小蒙 committed
50
51
```

赵小蒙's avatar
赵小蒙 committed
52
## 上手指南
赵小蒙's avatar
赵小蒙 committed
53

赵小蒙's avatar
赵小蒙 committed
54
### 配置要求
赵小蒙's avatar
赵小蒙 committed
55
56
57

python 3.9+

赵小蒙's avatar
赵小蒙 committed
58
### 使用说明
赵小蒙's avatar
赵小蒙 committed
59

赵小蒙's avatar
赵小蒙 committed
60
#### 1. 安装Magic-PDF
赵小蒙's avatar
赵小蒙 committed
61
```bash
赵小蒙's avatar
赵小蒙 committed
62
pip install magic-pdf
赵小蒙's avatar
赵小蒙 committed
63
64
```

赵小蒙's avatar
赵小蒙 committed
65
#### 2. 通过命令行使用
赵小蒙's avatar
赵小蒙 committed
66

赵小蒙's avatar
赵小蒙 committed
67
68
69
70
71
72
###### 直接使用
```bash
cp magic-pdf.template.json to ~/magic-pdf.json
magic-pdf pdf-command --pdf "pdf_path" --model "model_json_path"
```
###### 更多用法
赵小蒙's avatar
赵小蒙 committed
73
74
75
76
```bash
magic-pdf --help
```

赵小蒙's avatar
赵小蒙 committed
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#### 3. 通过接口调用

###### 本地使用
```python
image_writer = DiskReaderWriter(local_image_dir)
image_dir = str(os.path.basename(local_image_dir))
jso_useful_key = {"_pdf_type": "", "model_list": model_json}
pipe = UNIPipe(pdf_bytes, jso_useful_key, image_writer)
pipe.pipe_classify()
pipe.pipe_parse()
md_content = pipe.pipe_mk_markdown(image_dir, drop_mode="none")
```

###### 在对象存储上使用
```python
s3pdf_cli = S3ReaderWriter(pdf_ak, pdf_sk, pdf_endpoint)
image_dir = "s3://img_bucket/"
s3image_cli = S3ReaderWriter(img_ak, img_sk, img_endpoint, parent_path=image_dir)
pdf_bytes = s3pdf_cli.read(s3_pdf_path, mode=s3pdf_cli.MODE_BIN)
jso_useful_key = {"_pdf_type": "", "model_list": model_json}
pipe = UNIPipe(pdf_bytes, jso_useful_key, s3image_cli)
pipe.pipe_classify()
pipe.pipe_parse()
md_content = pipe.pipe_mk_markdown(image_dir, drop_mode="none")
```

详细实现可参考 [demo.py](https://github.com/magicpdf/Magic-PDF/blob/master/demo/demo.py)

## 版权说明
赵小蒙's avatar
赵小蒙 committed
106
107
108

[LICENSE.md](https://github.com/magicpdf/Magic-PDF/blob/master/LICENSE.md)

赵小蒙's avatar
赵小蒙 committed
109
## 鸣谢
赵小蒙's avatar
赵小蒙 committed
110
111
112
113
- [PaddleOCR](https://github.com/PaddlePaddle/PaddleOCR)
- [PyMuPDF](https://github.com/pymupdf/PyMuPDF)