如何从文件夹的每个pdf文件中提取前10页

inf*_*mer 5 command-line pdf batch pdftk

我在一个文件夹中有 90 个子文件夹。每个子文件夹都包含 pdf 文件。pdf 文件总数接近 2200。如何从所有 pdf 中提取第 3 到 10 页?

要从一个 pdf 中提取页面,我使用以下命令。

pdftk *.pdf cat 3-10 output 3-10.pdf
Run Code Online (Sandbox Code Playgroud)

and*_*.46 5

这一衬里(为了便于阅读分为 2 行)经过测试,在我的系统上运行良好:

find . -name '*.pdf' -type f -exec bash -c \
'pdftk "$0" cat 3-10 output "${0%.pdf}_3-10.pdf"' {} \;
Run Code Online (Sandbox Code Playgroud)

只需在基本文件夹(包含所有子文件夹的文件夹)中打开一个终端窗口,然后复制并粘贴上面给出的整个单行命令。它会:

  1. 遍历所有子文件夹并识别所有 pdf
  2. 从每个中提取第 3-10 页(使用您的示例命令)
  3. 给出一个合理的输出文件名:_3-10添加的原始名称

这应该可以巧妙而经济地实现您的目的......

变化:

您可以选择提供不同的输出位置来收集所有更改的 pdf 文档。例如,您可以创建一个名为的文件夹~/extracted并将上面的命令行更改为以下内容:

find . -name '*.pdf' -type f -exec bash -c \
'pdftk "$0" cat 3-10 output "~/extracted/${0%.pdf}_3-10.pdf"' {} \;
Run Code Online (Sandbox Code Playgroud)

因此,所有更改过的 pdf 文件都会出现在~/extracted.

无限可能 :)。