这是一个集成了多个pdf解析器的脚本工具,可以解析PDF的图片、结构信息、表格、引用等。开发进度详见最后的表格。
使用此项目需要保证环境中有python3.6+,Java1.8+。如使用grobid后端,需要保证当前网络能够访问到Grobid的服务器。
使用pip安装。
git clone https://github.com/Acemap/pdf_parser.git
cd pdf_parser
pip install -r requirements.txt
python setup install
执行python脚本,参数参考下面例子。backend和type的取值见最后表格。
python -m pdf_parser --backend=grobid --type=text <pdf_file|directory> output_directory
Parser
类,传入参数backend
指定所使用的后端。
class pdf_parser.Parser(backend='grobid')
解析input_dir
中所有pdf文件的结构信息,将结果存入output_dir
。解析使用n_threads
个线程并发,默认为0,代表使用所有cpu核心数
。
pdf_parser.Parser.parse('text', input_dir, output_dir, n_threads=0)
解析input_dir
中所有pdf文件的图片信息,将结果存入output_dir
。解析使用n_threads
个线程并发,默认为0,代表使用所有cpu核心数
。
pdf_parser.Parser.parse('figure', input_dir, output_dir, n_threads=0)
代码示例:
from pdf_parser import Parser
parser = Parser('cermine')
parser.parse('text', '/path/to/xxx.pdf', '/path/to/output', 50)
parser.parse('figure', '/path/to/pdf_dir ', '/path/to/output', 50)
Backend↓ / Type→ | text | image | reference |
---|---|---|---|
grobid | √ | × | × |
cermine | √ | √ | × |
scienceparse | √ | × | × |
pdffigures | × | √ | × |
pdffigures2 | √ | √ | × |
Backend↓ / Requirements→ | OS | java | Other |
---|---|---|---|
grobid | All (Windows/Linux/Mac) | Not Need | No |
cermine | All (Windows/Linux/Mac) | Need | No |
scienceparse | All (Windows/Linux/Mac) | Need | No |
pdffigures | Linux/Mac | Not Need | leptonica & poppler (Ubuntu: sudo apt install libpoppler-private-dev libleptonica-dev) |
pdffigures2 | All (Windows/Linux/Mac) | Need | No |
@misc{sciparser,
author = {Cheng Deng, Yuting Jia, Shuhao Li},
title = {pdf_parser: All in one PDF Parser Toolkits},
year = {2023},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/Acemap/pdf_parser}},
}