Используя 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"
Дважды проверьте, правильно ли указан путь к исполняемому файлу-скрипту, и я не проверял это, так как не пользуюсь Windows.
РЕДАКТИРОВАТЬ: ОК, я только что понял, что вы, вероятно, не хотите 500 одностраничных PDF, но один PDF, который объединяет их все. Просто запустите вышеописанное, и у вас останется 500 одностраничных PDF-файлов. Чтобы объединить их, используя pdftk ... на Mac и Linux:
pdftk *-page1.pdf cat output combined.pdf
Я думаю, что это, вероятно, то же самое в Windows, за исключением, возможно, необходимости полного пути к pdftk, как указано выше. Вы можете просто добавить эту строку после строки выше в вашем командном файле.
С Ghostscript ... на Mac и Linux:
gs -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="combined.pdf" *-page1.pdf
И, вероятно, то же самое в Windows, за исключением замены «gs» в начале на полный путь к gswin32c.exe, как указано выше.
Может быть, у ghostscript есть возможность сделать и то, и другое за один шаг, но мне лень это выяснять прямо сейчас.
Если порядок их объединения важен, нам потребуется больше информации.