excel抓取多页网页数据(给pdf文件插入一页,PowerAutomate是怎么自动做到的?)
优采云 发布时间: 2022-01-07 01:17excel抓取多页网页数据(给pdf文件插入一页,PowerAutomate是怎么自动做到的?)
上一篇文章《在pdf文件中插入页面,Power Automate如何自动做?PA实战》介绍了如何在pdf文件中插入内容,反之,如果有插入,就会有被删除。
例如,在很多pdf文件中,插入了一些广告页,尤其是一些“免费”的文件。这其实是可以理解的。毕竟,整理文档并不容易。插入广告以引起注意也是付费的一部分。小回报。但理解属于理解。有时,我们仍然希望删除广告页面。
如果只是一两个文件,手动操作也很快。它可以通过专业软件或直接使用 Power Automate 来实现。方法非常简单。从哪些页面获取哪些页面!| 《PA实战案例》中使用的方法——将PDF页面解压成新的PDF,这里不再赘述。
下面我们主要讲两种批量操作多个文件的情况:被删除页面的位置是固定的,被删除页面的位置需要通过页面内容搜索来判断。
- 1 -
要删除的页面在固定位置
这种情况也可以通过使用“将PDF页面提取到新的PDF”功能来实现。但是,问题是pdftk工具仍然可以识别pdf文件的总页数。所以,我们直接使用pdftk工具的合并功能,直接合并(删除)删除对应的页面——合并功能真的很好用,具体的使用方法这里举例说明:
例如在文件“01 Nov 2029.pdf”的第3页插入adv.pdf文件,pdftk处理命令可以写成:
这个命令的写法很有意思:将“01 Nov 2019.pdf”文件设置为A,将“adv.pdf”文件设置为B,然后合并[A's pages 1-3, B, A's pages 4- 最后一页 (end)],输出为 out.pdf 文件。
然后,借助合并功能,假设我们要删除文件夹“E:\RPA\pdf\2019”中所有pdf文件的第4页。实施步骤如下:
Step-01 获取文件夹中的文件
Step-02 为每个循环添加
选择对上一步得到的pdf文件(%Files%)进行循环操作。
Step-03 在循环中添加“运行DOS命令”
注意DOS命令的写法:
1、pdftk命令完全按照你存放pdftk工具的文件路径来写:比如这里是“E:\RPA\pdf\PDFtk\pdftk.exe”;
2、 选择循环的当前工程变量(文件)进入DOS命令时,注意是否加双引号。例如,因为这里要引用文件路径,而文件路径本身可能收录空格等,所以需要加双引号。
-2 -
要删除的页面需要根据内容来判断
在某些情况下,需要删除的页面不是固定的页码,而是需要根据页面的内容来确定。例如,页面收录特定的广告词...
在这种情况下,需要提取页面内容,然后进行文本比较(包括判断)来确定要删除的页面,比较困难。而且,暂时还没有支持直接根据搜索内容删除页面的pdf工具。
但是经过研究,发现pdftk支持我们将pdf文件拆分成不同的文件(每页一个)。这样,我们再提取拆分文件的内容进行判断。如果里面收录了具体的信息,我们直接删除页面文件,然后合并剩余的页面文件是不是可以达到同样的目的呢?
让我们来看看如何做到这一点。
Step-01 获取文件夹中的文件
Step-02 为每个循环添加一个
Step-03 创建一个原文件名的文件夹,用来存放分页后的文件
Step-04 运行DOS命令将pdf文件反汇编到一个文件夹中
pdf_d.pdf 表示反汇编后文件名为pdf_0001.pdf, pdf_0002.pdf……。
Step-05 获取反汇编后的单页文件
Step-06 为每个添加内循环
遍历pdf的每一页并阅读内容
Step-07 从 pdf 中提取文本
Step-08 添加IF条件判断单页pdf文件中提取的文本
条件设置为:如果从页面中提取的内容(%ExtractedPDFText%)收录“我是广告”。
Step-09 删除本页的pdf文件
Step-10 获取当前文件夹中的文件
在Step-09之后,收录广告的页面的pdf文件已被删除。再次获取文件夹中的所有pdf文件,为后续的合并做准备:
步骤 11 合并 PDF 文件
合并上一步得到的pdf文件(减少广告)。
经过以上拆分、提取文本、判断、删除页面,再合并的过程,我们就达到了根据内容删除pdf页面的目的。
该方法考虑到要删除的页面位置完全不确定,所以需要对所有pdf文件进行反汇编。结果,反汇编后的文件会比较多,每个页面都需要进行文本提取和判断。因此,如果页面较多,运行效率可能会比较低。
在实际工作中,如果要删除的页面位置比较固定,比如可能只出现在几个页面上,那么建议先将这些页面提取出来,分别处理后再合并,这样避免全部拆除的效率问题。