解析Pdf中的表格利器 ---batonce

序言

我们有个需求要解析pdf,尤其是pdf中的表格,某遍观github,没有找到一个符合需求的,于是花了一周时间做了一个解析pdf表格的工具,batonce。

地址:github地址

Quik Start

引入batonce的包

    <dependency>
            <groupId>io.github.xiaopdtext</groupId>
            <artifactId>batonce</artifactId>
            <version>1.0.0</version>
        </dependency>

引入之后,需要解析的pdf中有表格,输入表格的部分表头,可以智能找到表头,表头在pdf中需要唯一(这个约束将会在下个版本中取消)。然后如果您需要的是所有数据,要所有的数据则

Object data = wiredTableParsing.getData(null);

否则

File pdfFile = new File("test.pdf");
		PDDocument load = PDDocument.load(pdfFile);
		JSONDataHandler jsonDataHandler = new JSONDataHandler();
		WirelessTableParsing wiredTableParsing = new WirelessTableParsing(jsonDataHandler);
		wiredTableParsing.process(load, load.getPage(0));
		wiredTableParsing.load("Name", "ID");
		Object data = wiredTableParsing.getData("Name", "ID");
		System.out.println(data);
		try {
			load.close();
		} catch (IOException e) {
			e.printStackTrace();
		}

您可以以任何格式接收数据,只需要实现handler即可,例如内置的json模板:

public class JSONDataHandler extends BaseTypeHandler<String> {
    public JSONDataHandler() {
    }

    public String getResultWithFiled(Map<String, List<Cell>> fieldListMap) {
        return JSONObject.toJSONString(fieldListMap, new Feature[0]);
    }

    public String getResultWithoutFiled(Table table) {
        return JSONObject.toJSONString(table, new Feature[0]);
    }
}

您也可以继承BaseTypeHandler即可。用来承接结果。至于要多少数据,自己去实现就行

结束语

这个工具比较赶,难免会出现纰漏,请各位大神斧正,如果对这个项目感兴趣,可以贡献代码。以后的方向是解析整个pdf中的元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值