分享

给pdf文件插入一页,Power Automate是怎么自动做到的? | PA实战

 大海_Power 2021-12-31

在pdf文件中插入另一个pdf文件(部分页面或全部),比如,对某些文件批量加上公司的介绍等等。一般可能存在两种可能:

1、在文件开头或结尾插入,即追加一个文件到另一个;

2、在文件的中间插入另一个文件。

下面我们分不同的情况进行讨论。

- 1 -

在文件开头或结尾插入(追加)

这种情况在实际工作中应该最为常见,也是最为简单的,因为,这实际就是将两个文件合并在一起,只是要注意选择PDF文件时生成的列表中要插入的页(文件)的位置正确即可。

比如要将adv.pdf文件中的页面插入到“01 Nov 2029.pdf”文件的后面,我们可以直接添加“合并PDF文件”步骤,选择要“插入”(合并)的文件,确保adv.pdf文件在列表的最前面,再配置相应的合并后pdf文件路径即可。

- 2 -

在指定页位置插入

理论上来说,在指定页面位置插入其他pdf文件(页),可以通过两次使用“将PDF文件页面提取到新的PDF文件”功能,将pdf文件以指定要插入页面的位置进行“分拆”,提取成两个独立的pdf文件,然后再和要插入的pdf文件进行合并。

比如,某pdf文件一共有10页,要在第3页的后面插入其他pdf文件,那么,可以简单分三步走:

Step-01 提取第1-3页的页面到新文件

Step-02 提取第4-10页的页面到新文件

Step-03 然后再和要插入的内容合并到一起

操作很简单,不过这里有个小技巧——因为前面2个步骤提取的pdf文件,除了生成了实体的文件存放到相应的路径外,步骤本身还带有现成的输出对象(生成的变量):ExtractedPDF和ExtractedPDF2,所以,我们可以直接引用,而不需要去引用存放好的实体文件。

具体选择过程及注意事项如下:

1、通过文件选择按钮,选择待插入文件adv.pdf;

2、通过变量选择按钮{x},选择前面生成的变量ExtractedPDF2;

3、通过变量选择按钮{x},选择前面生成的变量ExtractedPDF。

要注意的是,选择变量时,会自动带出多余的%%符号,要予以删掉!因为在第2步选择adv.pdf文件时,生成的文件列表外已包含%%符号。

通过这个方法,我们的确可以实现在指定位置插入页面,但是,这里有个问题,即要知道这个pdf文件一共有多少页,才能准确提取pdf文件后面的部分。

参考文章《动态提取PDF内容的终极秘籍!兼一个超强网站推荐!| PA重要资源》,虽然我们也可以借助pdftk工具来得到pdf文件的总页数,但整体来说,这个做法步骤较多,操作起来也就麻烦一些,有兴趣的朋友可以自己动手练一练。

- 3 -

借助pdftk轻松插入页

前面提到,如果要通过拆分再合并的方式实现页面插入,需要借助pdftk工具进行页面数的识别,既然这样,倒不如直接使用pdftk工具的合并pdf文档命令——炒鸡强大、灵活!

比如,要将adv.pdf文件插入到文件“01 Nov 2029.pdf”的第3页后,pdftk处理命令可写为:

pdftk A="01 Nov 2019.pdf" B="adv.pdf" cat A1-3 B A4-end output out.pdf

这个命令的写法很有意思:将"01 Nov 2019.pdf"文件设为A,“adv.pdf”文件设为B,然后合并【A的第1-3页、B、A的第4-最后一页(end)】,输出为out.pdf文件。

有了这样的批处理命令,用Power Automate进行调用,实现批量的pdf文件在指定位置插入页面就非常灵活、简单了。

比如,对文件夹“E:\RPA\pdf\2019”下的所有pdf文件的第3页后插入文件adv.pdf,操作如下:

Step-01 获取文件夹中的文件

Step-02 添加for each循环

选择对上一步骤的获取的pdf文件(%Files%)进行循环操作。

Step-03 在循环中添加“运行DOS命令”

注意其中的DOS命令写法:

1、pdftk命令要按自己存放pdftk工具的文件路径写完整:如我这里是“E:\RPA\pdf\PDFtk\pdftk.exe”;

2、选择循环的当前项目变量(文件)放入到DOS命令时,注意是否要加上双引号。比如,这里因为要引用的是文件路径,而文件路径本身可能存在空格等,所以要套上双引号。

至此,我们借助pdftk工具,很方便地实现了在指定页面插入pdf文件(页面)的目标,并且,通过Power Automate可以轻松实现批量化的自动处理。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多