Назад | Перейти на главную страницу

объединить несколько PDF-файлов в Linux с помощью скрипта?

Я хочу сохранить / загрузить PDF-файлы с веб-сайта X, а затем объединить все эти PDF-файлы в один, чтобы мне было легко увидеть их все сразу.

Что я сделал,

  1. получить PDF-файлы с веб-сайта

    wget -r -l1 -A.pdf --no-parent http://linktoX
    
  2. объединить PDF-файлы в один

    gs -dNOPAUSE -sDEVICE=pdfwrite -sOUTPUTFILE=Combined_`date +%F`.pdf -dBATCH file1.pdf file2.pdf file3.pdf
    

Мой вопрос / проблема в том, что я подумал об автоматизации всего этого в одном сценарии, чтобы мне не приходилось делать это каждый день. Здесь новые PDF-файлы добавляются ежедневно в X.

Итак, как я могу выполнить шаг 2 выше, не указывая полный список всех PDF-файлов, я попытался сделать file*.pdf на шаге 2; но он объединил все PDF-файлы в случайном порядке.

Следующая проблема заключается в том, что общее количество файлов * .pdf не одинаково каждый день, иногда 5 файлов PDF, иногда 10 ... но приятно, что он назван в порядке file1.pdf file2.pdf ...

Итак, мне нужна помощь для выполнения вышеуказанного шага 2, чтобы все PDF-файлы были объединены по порядку, и мне не нужно было явно указывать имя каждого PDF-файла.

Спасибо.

ОБНОВЛЕНИЕ: это решило проблему

pdftk `ls -rt kanti*.pdf` cat output Kanti.pdf

я сделал ls -rt так как file1.pdf был загружен сначала, а затем file2.pdf и так далее ... просто делаю ls -t ставить file20.pdf в начале и file1.pdf в конце...

Пытаться pdftk и используйте сортировку следующим образом:

pdftk `ls files*pdf | sort` cat joined.pdf

Вместо файла * .pdf вы можете вывести список файлов, которые вам нужны, с помощью другой команды, используя обратные кавычки, например. ls ... как в ответе chmeee. Вы должны иметь возможность использовать исходную команду ghostscript следующим образом:

Это отсортирует файлы по дате изменения, сначала самые старые:

gs [...] `ls -rt file*pdf`

Это отсортирует их численно, начиная с 5-го символа:

gs [...] `ls | sort --key=1.5 -g`