php和mysql web开发第五版pdf_第十五课 RPA获取PDF文档的数据

    大家好,这节课我们来谈谈如何从PDF文档中获取业务所需要的数据。在实际项目中,我们经常会遇到需要处理PDF文档中数据的场景,比如某企业或者银行将个人征信信息以PDF格式方式存储,业务中先从该文档获取指定数据,然后将这些数据搬运到Web系统对应的字段中或者将字段存入数据库中,在这种场景里,首先需要做的是要将PDF文档中的数据读取出来,然后进行后续的操作。那么,如何才能从PDF文档中获取我们所需要的字段呢?

    接下来,我们一起谈谈具体操作思路及操作步骤。

准备工作:

    1)准备开发流程的电脑,请打开云扩学院链接查看云扩RPA编辑器运行的硬件&软件要求(https://academy.encoo.com/wiki/Studio/quickStart/HarewareAndSoftwareRequirements.md?)

    2)打开云扩官网(https://www.encoo.com/)下载编辑器并安装。

解决方案:

    1)将PDF转换为Excel,然后从Excel中获取对应的数据;

    2)将PDF转换为Word,再从Word中获取对应数据。

根据业务需求及PDF文档模板来决定转换为Excel还是Word格式。那么,又该怎么判断要转换为Excel或者Word格式呢?这里,我们用两种模板的PDF文档来举例,第一份模板格式如下所示:

该业务中我们需要获取“订单号”及“联系人”等第一个表格中的数据,但订单号不在表格中,所以转换为Excel格式不太可靠,那么我们就转为Word格式来操作。

第二份PDF模板,模板中所有数据都在表格中,如下面视频所示:

这类PDF文档,我们可以转换为Excel然后进行后续操作。

本节课我们以转换为Word格式为例进行讲解。

流程开发思路及步骤:

   1)设计流程思路:

c172da6c7f69a3f06b92cbc1f3f77404.png

     2)流程开发步骤:

打开云扩编辑器,选择“项目”,并点击“新建项目”进行创建项目。

29d74d4b48428c2c20f60d47fef7e81a.png

根据流程设计,我们需要用到PDF转换组件及处理Word组件。打开“流程市场”,下载“PDF格式转换工具包”与“Office Word组件包”。

231a71e038148b64365f9d020c1ac601.png

下载后在扩展中能看到对应的组件包,如下图所示:

3af8618a9df461783a88a3c5f7ba8960.png

进入项目,拖入“PDF转Word”组件,添加PDF文档路径与转换后的Word路径变量并输入属性:

3faa01e1eeeb89deff4df41e7ff16d39.png

拖入“Word打开/新建”组件,添加word变量并输入对应属性:

f784d10e93b9da024bb895a82da66b43.png

打开Word文档(如下图所示)后首先获取订单号,但订单号不在表格中,我们可以考虑选择行与复制来获取。

633e01adc22308f3a4f20d02d596a7d6.png

拖入“Word选择行”组件,并输入对应的属性,如上面Word文档截图所示,订单号在第4行,那么我们定义“起始行”与“结束行”的值为4:

45fc6ab330deef9929a30f5b4fe53592.png

选择行之后进行复制,并将复制的值从剪切板获取。拖入“Word复制”组件与“获取剪贴板”组件并输入对应的属性变量:

bacc66a717bfa1fd6074e819591876e1.png

再从Word文档截图可见,第4行数据除了订单号外还有打印日期,那么我们需要进行简单处理,以字串中的冒号“:”与"Print“的第一个字母”P“切割(Split()方法),并删除字串前后空格,用Trim()方法,即:bookingNo.Split(':')[1].Split('P')[0].Trim(),我们用确认框来测试这种方法是否可行,如下图所示,可获取正确的订单号:

e867e5e9da6dde487ed1905960cd73c2.png

接下来需要获取表格中的数据,我们用“Word获取表格”组件,获取数据的表格在Word文档中属于第1个表格的位置。拖入“Word获取表格”组件,并添加变量,输入顺序等属性,然后用“预览数据表”组件进行预览获取的表格是否正确

ae37ccaaee4e0ac34ced6401fe3b2c7b.png

运行并预览获取的数据表,数据获取完整,如下图所示:

15bfae52e7b6d5ccaea1435b265bec26.png

以上操作已获取到表格外的订单号与表格中的数据了,那么接下来需要处理数据表中的数据。我们用数据表“遍历行”组件进行遍历每一行,每一行中再用“循环操作(While)”组件进行处理每一列数据。

拖入“遍历行”组件,输入对应处理的数据表变量:

07caf673a7964aa9d12b0e0234cfc3d4.png

拖入“循环操作(While)”组件,并添加变量与循环条件,循环条件为:index( 用row.ItemArray.Length方法获取DataRow的列数,index作为列index)

c8e192f0b6e9bdef9e4c3c3e2143d97a.png

接下来我们用“确认框”组件来检查每一行每一列数据( row[index].ToString()),用“赋值”组件递增index,如下图所示:

f21d969203a6d7828c4bb4b674abe1e9.png

       至此,从PDF文档中按需获取数据流程已开发完毕,保存流程并运行,参考以下视频:

获取到正确数据后要填入数据库或者搬运到web端系统待后续课程中进行讲解,本次课程到此结束~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值