Я ищу способ (предпочтительно с использованием командной строки в 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, но все вращается вокруг единообразного именования файлов.