Объединяйте PDF-файлы в правильном порядке

Объединяйте PDF-файлы в правильном порядке

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

Поэтому я хочу иметь возможность перейти в каталог, содержащий все отдельные главы, и просто сделать

joinpdf-magic-command *.pdf

и чтобы выходной PDF-файл был в правильном порядке.

Я нашел множество инструментов для объединения PDF-файлов ( pdfjoin, pdftk), но все они размещают PDF-файлы в том порядке, в котором они отображаются в командной строке.

редактировать:

Пример списка глав может быть таким:

1-Introduction.pdf
2-The-analog-digital-interface.pdf
3-Adaptive-digital-systems.pdf
4-Non-linear-applications.pdf
5-Spectral-analysis-and-modulation.pdf
6-Introduction-to-Kalman-filters.pdf
7-Data-compression.pdf
8-Error-correcting-codes.pdf
9-Digital-signal-processors.pdf
Appendix-1-Solutions-to-problems.pdf
Appendix-2-A-MATLAB-Simulink-primer.pdf
Glossary.pdf
Index.pdf
Preface.pdf
References.pdf

Но для других книг будут другие разделы, их названия могут быть другими, и даже разделы с одинаковым названием могут даже быть предназначены для разного порядка. Вот почему я упомянул, что использование номеров страниц может быть ключом.

решение1

Нет никакой магии, которую вы можете использовать для автоматической сортировки глав вашей книги — нет, если соглашение об именовании файлов не поддерживает это. Это действие, которое должен выполнить человек.

Единственный способ сделать этобыстрыйпутем помещения упорядоченных имен файлов в текстовый файл, аналогичный тому, что вы процитировали в своем OP.

Затем просто запустите:

pdftk $(cat mychapters.txt) cat output book.pdf

решение2

Лично я бы не искал новый инструмент, а предпочел бы обернуть ваш рабочий процесс в скрипт, обеспечивающий правильный порядок.

Я предполагаю, что у вас есть какой-то способ определить правильный порядок, иначе это будет вообще невозможно. В идеале, вы бы назвали файлы так, чтобы они автоматически попадали в правильный порядок:

01ChapterTitleOne.pdf
02ChapterTitleTwo.pdf
etc.

и так далее. У вас может быть номер главы в конце (как в примере Майкла), что нарушает сортировку. В этом случае вам следует добавить шаг в сценарий рабочего процесса, который переименовывает файлы, чтобы они располагались в правильном порядке.

Пока файлы имеют одинаковые имена, это не должно быть проблемой. Если вы можете поделиться дополнительной информацией об именовании, я уверен, что мы сможем придумать скрипт BASH для этого.

Как только вы все правильно назовете, вы сможете использовать ту же команду, с которой вы начали, как второй шаг сценария рабочего процесса. Если это не сработало, вам понадобится немного более сложный сценарий BASH, который будет проходить по файлам в правильном порядке.

Все это стандартные вещи для скриптов BASH, но все вращается вокруг единообразного именования файлов.

Связанный контент