java itext解析pdf

解析pdf的java开源包有itext、pdfbox、xpdf等。据说pdfbox对中文支持不好,xpdf是用命令行调用,还一堆七七八八的配置,没用过。itext一般来说是生成pdf比较容易,解析比较麻烦,效果感觉还是可以的。但是。
标准pdf文件是根据pdf规范设计的。pdf文件中的文字、页面、页眉页脚、图、线等都是一个个对象。总的来说就是一个pdf对应一个文档,文档中有若干页,每页中有各自所包含的对象,比如说行,也比如说行中的文本。
对象可以由操作符推断出,操作符后面紧跟该操作符所需的若干个操作数。一类很重要的操作数是位置坐标。itext返回的数据流顺序不一定是我们眼睛看pdf得到的顺序,但是位置坐标不会骗人,把坐标进行排序得到的才是正确的顺序。
对需要处理的操作符或操作符对,定制处理方法,操作数对应为处理方法的参数。比如说把线[re、m/l、do](可能是长的也可能是很短的)一个个连起来,可能就组成了表格;文本也是,不是说一个数据流就是一段或者一行,可能是1个字,也可能是几个字,没有规律,根据需要组成段或者行。
有些pdf用itext解析不出任何文本,也可能是pdf本身有问题,用abrocatreader也复制不出东西。
总体来说感觉itext挺强大的,但是提供的功能不够全,比如不支持表格的抽取,需要自己定制方法识别。但是表格构成的线有些是很短的线组成的,拼接的时候误差较大。又比如像文本,只能得到文字和位置、字体字号等信息,要是能提供接口区分结构,那就更完美了。期待以后itext源码中会加入更多的功能。
[img]http://dl2.iteye.com/upload/attachment/0091/7860/e20fa08a-ee95-371e-8bfb-0546b2ae385d.png[/img]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值