Java 实现pdf转excel

本文介绍了一个项目中使用iText库解析非模板化的PDF文件,以获取字段数据并转换为Excel的需求。由于PDF内容无法通过表单域获取,作者通过分析源码,发现需要基于字段坐标范围来提取内容。提供的代码仅作为思路参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 最近项目需要解析pdf单据,获取里面的字段数据,通过网上的查阅发现itext比pdfbox的文档要多一点,所以选择了itext(不是说pdfbox不好,只是api和例子太少,难以解)。因pdf非模板化(某政府发放),所以靠表单域获取变得不现实。一开始通过PdfReaderContentParser获取的文档内容,但是获取到的是所有内容拼接成的一个字符串,而需求需要将数据精确到字段,靠截取字符串来达到解析的目的是行不通的,因为获取的内容毫无规律。后查看源码代码,发现解析过程是逐字随机字符解析的,所以只有通过字段所在坐标范围来获取字段内容。

/**
* Created by luon 2018/3/21.
*/

@Override
protected ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response, Object command, BindException errors) throws Exception {
FileUploadForm form = (FileUploadForm) command;

SimpleResult result = SimpleResult.create(false);
if (form.getFile() == null || form.getFile().getSize() == 0) {
result.setMessage("请上传pdf文件");
return new ModelAndView(new JsonView(result));
}
if (!"pdf".equals(FilenameUtils.getExtension(form.getFile().getOriginalFilename().toLowerCase()))) {
result.setMessage("请上传pdf格式的文件");
return new ModelAndV
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值