从多个pdf中提取第一页

Tim*_*der 19 pdf open-source

有大约 500 个 PDF 文件需要浏览并提取其中的第一页。然后他们需要经历一些耗时的转换过程,因此希望通过批处理从 500 个 pdf 中提取第一页并将其放入新的 pdf 中,从而节省一些时间。对 Acrobat 进行了一番探索,但找不到对多个文件执行此操作的真正方法。有谁知道可以实现的任何其他程序或方法?免费和开源显然更有利:)

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

fra*_*ous 31

使用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 批处理文件的相应命令是什么。我最好的猜测(--我没有窗户,所以我无法测试--):

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 个单页 PDF,而是一个将它们组合在一起的单个 PDF。只需运行上面的程序,您就会得到 500 个 1 页的 PDF。要在 mac 和 linux 上使用 pdftk... 将它们组合起来:

pdftk *-page1.pdf cat output combined.pdf

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

使用 Ghostscript... 在 mac 和 linux 上:

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

它在 Windows 上可能是一样的,除了用 gswin32c.exe 的完整路径替换开头的“gs”,如上。

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

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