从多个 PDF 中提取第一页

从多个 PDF 中提取第一页

我有大约 500 个 PDF 需要查看并提取其中的第一页。然后,它们需要经过一些耗时的转换过程,因此希望通过批处理从 500 个 PDF 中提取第一页并将其放入新的 PDF 中来尝试节省一些时间。

对 Acrobat 进行了一些研究,但找不到对多个文件执行此操作的实际方法。

有人知道其他可以实现此目的的程序或方法吗?免费和开源显然更受欢迎。


编辑:实际上,我使用 GhostScript 提取一页时取得了一些成功。我现在正在研究如何批量处理并获取文件列表并使用它们。

答案1

使用pdftk...

在 Mac 和 Linux 上通过命令行。

for file in *.pdf ; do pdftk "$file" cat 1 output "${file%.pdf}-page1.pdf" ; done

在 Windows 上,您可以创建一个批处理文件。打开记事本,将其粘贴到其中:

for %%I in (*.pdf) do "pdftk.exe" "%%I" cat 1 output "%%~nI-page1.pdf"

您可能需要将“pdftk.exe”替换为 pdftk 的完整路径,例如,"C:\Program Files\pdftk\pdftk.exe或其他任何路径。(我不使用 Windows,所以我不知道。)

将其保存为以 .bat 结尾的扩展名,然后将其放入包含 PDF 的文件夹中并双击。

是的,您可以使用 Ghostscript 做同样的事情。

让我们看看。对于 Mac 和 Linux(全部一行):

for file in *.pdf ; do gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="${file%.pdf}-page1.pdf" -dFirstPage=1 -dLastPage=1 "$file" ; done

我不太清楚 Windows 批处理文件的相应命令是什么。我猜(我没有 Windows,所以无法测试):

for %%I in (*.pdf) do "C:\Program Files\gs\gs9.00\gswin32c.exe" -dSAFER -dNOPAUSE -dBATCH -sDEVICE#pdfwrite -sOutPutFile#"%%~nI-page1.pdf" -dFirstPage#1 -dLastPage#1 "%%I"

仔细检查 ghost 脚本可执行文件的路径是否正确,因为我不使用 Windows,所以我没有测试过这个。


编辑:好的,我刚刚意识到你可能不想要 500 个 1 页的 PDF,而想要一个将它们全部合并在一起的 PDF。只需运行上述操作,你就会得到 500 个 1 页的 PDF。要在 Mac 和 Linux 上使用 pdftk 合并它们...:

pdftk *-page1.pdf cat output combined.pdf

我认为在 Windows 上可能也一样,只是可能需要 pdftk 的完整路径,如上所述。您只需在批处理文件中的上述行后面添加该行即可。

在 Mac 和 Linux 上使用 Ghostscript...:

gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="combined.pdf"  *-page1.pdf

在 Windows 上可能也是一样的,只是将开头的“gs”替换为 gswin32c.exe 的完整路径,如上所述。

ghostscript 可能有一种方法可以一步完成这两项工作,但我现在懒得去弄清楚。

如果组合它们的顺序很重要,那么我们将需要更多信息。

答案2

今天在 Linux 上做了这件事。它也应该适用于 Mac。从您的终端执行以下命令。

lpr -o page-ranges="1-1" path/to/folder/*.pdf

lpr 将作业提交给打印机。

请注意命令中的 * 字符用法。这将对目录中的所有 PDF 文件运行该命令。

答案3

如同 Windows 批处理文件命令 (.bat) (%% 表示 bat 文件中的变量)

将 pdf 第一页提取为分辨率/尺寸降低的 jpg

for %%I in (*.pdf) do "C:\Program Files (x86)\gs\gs9.14\bin\gswin32c.exe" -dSAFER -dNOPAUSE -dBATCH -sDEVICE#jpeg -r20 -sOutputFile#"%%~nI.jpg" -dFirstPage#1 -dLastPage#1 "%%I"

(在上面的帖子中,sOutputFile 写错了...并且与标准 gs x86 安装的当前路径错误)

(另请查看 使用 Ghostscript 将多页 PDF 转换为单个 JPG?

答案4

我认为您可以使用 pdf 虚拟打印机,例如 pdf-forge。

您只需“打印”第一页,我现在在 Mac 上,无法尝试,但我很确定您可以一次打印多页。

祝你好运!!

特鲁法

相关内容