README_zh-CN.md 3.07 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
![流程图](docs/images/flowchart_zh_cn.png)

### 子模块仓库

- [pdf-extract-kit](https://github.com/wangbinDL/pdf-extract-kit)
- [Miner-PDF-Benchmark](https://github.com/opendatalab/Miner-PDF-Benchmark)

赵小蒙's avatar
赵小蒙 committed
49

赵小蒙's avatar
赵小蒙 committed
50
## 上手指南
赵小蒙's avatar
赵小蒙 committed
51

赵小蒙's avatar
赵小蒙 committed
52
### 配置要求
赵小蒙's avatar
赵小蒙 committed
53
54
55

python 3.9+

赵小蒙's avatar
赵小蒙 committed
56
### 使用说明
赵小蒙's avatar
赵小蒙 committed
57

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

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

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

赵小蒙's avatar
赵小蒙 committed
75
76
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
#### 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
104
105
106

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

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