Как я могу объединить первую страницу каждого PDF в папке?

946
Jack

Как я могу объединить первую страницу каждого PDF в папке? Если возможно, я бы хотел сделать это с помощью приложения командной строки. В настоящее время я использую программное обеспечение PDFtk, используя следующую команду:

pdftk *.pdf cat output all.pdf 

Но я не знаю, как объединить только первую страницу каждого PDF-файла. Я читал об catаргументах, но я все еще не знаю, как это сделать.

ОБНОВИТЬ:

Команда:

pdftk *.pdf cat 1-2 output all.pdf 

Получает первые две страницы последнего PDF-файла, развернутого *.оператором оболочки ...

ОБНОВЛЕНИЕ 2 :

Удалось сделать то, что я искал, но вручную, поэтому без использования *.оператора оболочки:

pdftk 1.pdf 2.pdf cat 1 1 output combined.pdf 

Воображаемый сценарий оболочки будет выглядеть следующим образом :

pdftk *.pdf cat repeat(1, COUNT(*.pdf)) output combined.pdf  repeat(C, N) -> repeat the character C N times COUNTOF(*.pdf) -> get the number of PDF files the folder 
1
Какая ОС? Есть, вероятно, работоспособный ответ Windows, но было бы очень аккуратно, если бы вы были немного более точными о том, на какой ОС вы хотите сделать это Journeyman Geek 7 лет назад 0

2 ответа на вопрос

1
Pimp Juice IT

Как я могу объединить первую страницу каждого PDF в папке?

Что ж, используя pdftk, вы можете выполнить это через оболочку командной строки в Windows, например, используя пару промежуточных каталогов и простой цикл FOR для соответствующей итерации команд pdftk., ,

Обратите внимание, что имена папок с пробелами должны быть заключены в двойные кавычки вокруг имени папки, а также иметь двойную обратную косую черту в пути к папке. например D:\\"test folder"\\*.pdf, C:\Test\\"Output 1"и так далее.

Пакетный скрипт

@ECHO ON  SET PDFDir=C:\Users\User\Desktop\Test SET newPDFDir=%PDFDir%\new SET combinedDir=%newPDFDir%\combined  IF NOT EXIST "%newPDFDir%" MD "%newPDFDir%" IF NOT EXIST "%combinedDir%" MD "%combinedDir%" IF EXIST "%combinedDir%\*.pdf" DEL /Q /F "%combinedDir%\*.pdf" IF EXIST "%newPDFDir%\*.pdf" DEL /Q /F "%newPDFDir%\*.pdf"  :IteratePDFtk FOR %%F IN ("%PDFDir%\*.PDF") DO pdftk %%~F cat 1 output "%newPDFDir%\%%~NXF" CD /D "%newPDFDir%" pdftk %newPDFDir%\*.pdf cat output %combinedDir%\combined.pdf EXPLORER "%combinedDir%" GOTO EOF 

Дополнительные ресурсы

Хотя в вашем ответе, как написано, нет ничего плохого, похоже, что OP на самом деле ищет решение для Linux Journeyman Geek 7 лет назад 0
1
Geremia

В следующей команде символы « -dFirstPage=1и» -dLastPage=1применяются к каждому PDF отдельно, до объединения:

gs -dFirstPage=1 -dLastPage=1 -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=out.pdf *.pdf 

Похожие вопросы