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

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

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

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

pdftk *.pdf cat 3-10 output 3-10.pdf

答案1

一句话(为了方便阅读,分成两行)已经过测试并且在我的系统上运行良好:

find . -name '*.pdf' -type f -exec bash -c \
'pdftk "$0" cat 3-10 output "${0%.pdf}_3-10.pdf"' {} \;

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

  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"' {} \;

因此所有改变的 pdf 文件都会出现在 中~/extracted

无限可能 :)。

答案2

您可以使用 qpdf,因为 pdftk 在 ubuntu bionic 上不再默认可用: find . -name '*.pdf' -type f -exec bash -c 'qpdf --empty --pages "$0" 3-10 -- "temp/${0%.pdf}_1.pdf"' {} \;

这会将新的 pdf 放入临时文件夹。

相关内容