Answers:
使用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的完整路径替换“ pdftk.exe”,例如,"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"
仔细检查幽灵脚本可执行文件的路径是否正确,好吧,因为我没有使用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上可能是一样的,除了上面用gswin32c.exe的完整路径开头替换“ gs”。
也许有一种方法可以一步一步完成这两个步骤,但是我太懒了,无法立即解决。
如果组合它们的顺序很重要,那么我们将需要更多信息。
今天只需要在Linux中完成。它也适用于Mac。从终端执行以下命令。
lpr -o page-ranges="1-1" path/to/folder/*.pdf
lpr将作业提交到打印机。
注意命令中的*字符用法。这将为目录中的所有PDF文件运行命令。
我认为您可以使用pdf-forge等pdf虚拟打印机。
您只是“打印”第一页,我现在在Mac上无法尝试,但是我敢肯定您一次可以做更多。
祝好运!!
特鲁法
对于Windows批处理文件命令(.bat)(%%用于bat文件中的变量)
以较低的分辨率/尺寸将pdf转换为jpg的pdf的首页提取
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安装的当前路径)
我写了这个命令行
tree -fai . | grep -P ".pdf$" | xargs -L1 -I {} pdftk {} cat 1 output {}.firstpage.pdf
但这确实可以完成工作,我对其进行了测试,它还可以与您拥有的所有级别的文件夹一起使用。只要确保将其运行在文件夹结构的根目录即可。每个文件夹中的每个pdf文件都有一个以pdf结尾的附加pdf.firstpage.pdf
你需要pdftk
与tree
此和Ubuntu Linux上,你可以用apt安装它:
sudo apt install pdftk tree
或使用cpdf https://www.coherentpdf.com/ocaml-libraries.html:
cpdf -merge in1.pdf [<range>] in2.pdf [<range>] [<more names/ranges>]
[-retain-numbering] [-remove-duplicate-fonts] -o out.pdf
cpdf -merge a.pdf 1 b.pdf 1 -o out.pdf