1

Как я могу объединить первую страницу каждого 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

3 ответа3

1

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

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

Как я могу объединить первую страницу каждого 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

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

0

Вот что я использовал в Ubuntu Bionic, так как pdftk больше не доступен:

mkdir temp && find . -maxdepth 1 -name '*.pdf' -type f -exec bash -c 'qpdf --empty --pages "$1" 1 -- "temp/${1%.pdf}_1.pdf"' bash {} \; && qpdf --empty --pages temp/*.pdf -- out.pdf && rm -r temp Краткое описание: 1) создать временную папку, 2) извлечь 1-ю страницу каждого файла pdf и сохранить во временном файле, 3) объедините все файлы в этой папке и 4) удалите эту папку.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .