Skip to content
 
 

Latest commit

 

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

整体介绍

x2md_tools 提供了一套sdk, 帮助开发者解析pdf_to_markdown的结果,获取对应的版面元素的数据结构

版本相关

版本 说明
1.0.0(当前版本) 支持提取json中table数据与cell数据,支持Linux C版本与Python版本

快速开始

基本的使用方式

Linux SDK

处理表格数据:

ITextInParserEngine* engine = ITextInParserEngine::createAndStartTextInParserEngine();
engine->parseFile(filePath.c_str()); // filePath为需要解析的json文件路径
int pageSize = 0;
engine->getPageSize(&pageSize)
for (int page_i = 0; page_i < pageSize; ++page_i) {
  int tableSize = 0;
  engine->getPageTablesSize(page_i, &tableSize);
  std::vector<Table> tables(tableSize);
  engine->findTables(page_i, tables.data(), tableSize);
  for (const auto& table : tables) {
    print_table_info(table); // 可以看到每一个表格的数据信息
  }
}
engine->release();
delete engine;

Python SDK

处理表格数据:

engine = textin_parser.ITextInParserEngine.createAndStartTextInParserEngine()
engine.parseFile("file.json")
result, page_size = engine.getPageSize()
if page_size > 0:
    # 获取第一页的表格数量
    result, table_size = engine.getPageTablesSize(0)
    # 获取第一页的表格数组
    result, tables = engine.findTables(0, table_size)
        for i, table in enumerate(tables):
            print_table(table)

Linux SDK介绍

代码框架

  • linux_sdk/include目录包含所需调用所用到的头文件
  • linux_sdk/samples目录包含获取表格信息的演示用程序代码与pdf/json文件
  • linux_sdk/src目录包含功能实现的具体源文件
  • linux_sdk/third_party目录包含编译所需要的第三方代码文件

编译运行

  • 环境准备: gcc/g++ 8.1及以上
  • sample编译:到samples/cpp目录下,直接运行./build.sh即可编译出测试程序
  • sample运行会遍历resource/的json文件,sample会处理这些json文件,结果都输出在output/log.txt
  • 每轮执行都会创建新的output/log.txt

运行样例

  • 项目clone下来之后,可以进入samples/cpp目录,运行./test_program
  • output/log.txt中即可看到samples/resource内的演示表格输出

使用方式

SDK API使用说明

  • createAndStartTextInParserEngine获取一个Parser的实列
  • parse 解析json的原始字符串
  • parseFile 根据json文件路径读取json数据解析
  • release 释放Parser内部的资源
  • getPageSize 获取PDF中的Page数量
  • getPageTablesSize 获取具体Page的表格数量
  • findTables 获取具体Page的表格
  • getDocument 获取整个PDF数据的结构体

Sample代码框架

说明

  • samples/base目录包含对应的工具函数文件
  • samples/cpp目录包含演示的main函数以及可直接运行的Makefilebuild.sh编译脚本
  • samples/file目录包含演示用的pdf文件
  • samples/resource目录包含file文件中通过TEXTIN RESTAPI返回的json结果并保存成了json文件(为了方便演示,直接展示处理samples/resource目录里json)
  • output目录包含输出的结果文件log.txt

Python SDK介绍

Python API是对Cpp中接口通过Pybind11做的二次封装。所以和Linux SDK提供的C++ API功能完全一样,每次需要运行build_so.sh脚本构建指定python3版本的so

编译运行

  • 环境准备: gcc/g++ 8/9 python3为3.6及其以上
  • 进入python_sdk/,运行build_so.sh即可在当前目录下获得与python3版本一致的so
  • 生成得到so后使用python3运行python_sdk/下的parser_test.py,即可在output.log看到所展示的对当前目录下chinese-tables.json的解析结果
  • 开发者可以使用import textin_parser来访问so里提供的接口,使用时需要把so加入到开发者目录中

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages