大家好,这节课我们接 循环下载钉钉出差审批单(PDF文件)场景,继续讲解该场景接下来的操作 - 循环从PDF文件中获取指定信息:日期及出差理由,并把对应信息存入数据表中。
我们在RPA获取PDF文档的数据中讲过表格类型的PDF文档可以转换为Excel操作,如果不是纯表格的PDF文档可以转换为Word文档操作,那么这节课我们再讲讲将PDF文档转换为txt文件并从中获取指定信息的方案。接下来,一起看看如何操作。
准备工作:
准备开发流程的电脑,请打开云扩学院链接查看云扩RPA编辑器运行的硬件&软件要求。
打开云扩官网下载编辑器并安装(本节课使用编辑器版本为:1.1.2009.10)。
已下载钉钉出差审批单-PDF文档。
流程操作步骤:
搭建数据表
1. 创建项目并打开项目。
2. 拖入“搭建数据表”组件,定义列名“日期”与“出差事由”并创建数据表变量:
PDF文档转TXT文档
1. PDF格式转换工具组件在组件市场中,所以我们需要先把需要的对应组件从组件市场从下载下来:
2. 因为我们需要循环处理PDF文件,所以先拖入“遍历文件夹”组件,并定义含有PDF文件的文件夹路径:
3. 拖入“PDF转Text”组件,定义PDF文件路径与转换后的txt文件路径:
a) PDF文件路径:filePath
b) 转换后Text文件路径:filePath.Split('.')[0] + ".txt"
读取文件内容
1. 拖入“读取文件”组件并输入文件路径与定义输出变量,用以读取上步操作中转换后的txt文件数据,如下图所示:
获取指定信息
1. 拖入“截取文本”组件获取所需数据。首先我们打开PDF文件查看数据的位置
从上图可见,需要获取的数据为:
a)出差事由(内容在关键字“出差事由”与“出差天数”之间);
b)时间(内容在关键字“时间”与“考勤”之间)
首先获取出差事由:输入“开始位置”(用text.IndexOf("出差事由"))与“结束位置”(text.IndexOf("出差天数")),定义截取结果变量,并拖入“确认框”组件验证获取的内容:
运行流程查看获取数据:
从上面的图可见,获取的数据除了可用数据外还多出前面的“出差事由”与后面的“出”,那么,我们需要做索引偏移,设置开始位置与结束位置如下图所示:
2. 同样方法获取出差时间,如下图所示:
将获取的数据添加到数据表中
1. 拖入“添加数据行”组件,并把上步操作获取的时间与出差事由内容写入数据表行数组中:new Object[]{dateText.Trim(),businessReason.Trim()}:
预览数据表及天数txt文件
至此,流程已开发完成,为了展示获取数据是否正确添加到数据表中,我们拖入“预览数据表”组件进行预览数据。再拖入“删除文件/文件夹”组件删除生成的txt文件:
如果需要把数据存入Excel文件,则用“打开/新建”组件与“写入区域”组件将数据写入Excel文件中,保存流程并运行,下面视频供参考:
好了各位,今天的课程就到此结束。我们可以用这种方法获取很多种PDF文档中的数据,比如pdf格式的发票,用OCR需要另外收费,那么我们何不用这种方式免费获取呢?免费还好用的东西谁不值得拥有呢?祝各位流程开发顺利~
快来点击阅读原文,申请下载云扩RPA社区版吧!
往期精彩课程推荐![e4fab2b39d217ba1ae57b730d905a282.png](https://i-blog.csdnimg.cn/blog_migrate/11a959486544882c8f19ac7bb8e503c3.png)
![edce542aaefb41f659ed24b3aa091a6a.png](https://i-blog.csdnimg.cn/blog_migrate/4e47e1008c4c6bd0b56947339482ffe1.png)
![f65d4355200eb3aa04bb4c1e87c165dc.png](https://i-blog.csdnimg.cn/blog_migrate/be62640b9ff2af4ea40cfc16ec24c55b.jpeg)