2

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

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

2 ответа2

3

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

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

Тогда просто запустите:

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

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

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

01ChapterTitleOne.pdf
02ChapterTitleTwo.pdf
etc.

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

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

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

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

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