Estou procurando uma maneira (de preferência usando a linha de comando no Linux) de mesclar PDFs separados de capítulos de livros em um único PDF do livro na ordem correta (talvez com base nos números das páginas dos PDFs ou em alguma heurística) .
Então, eu quero poder ir para o diretório que contém todos os capítulos individuais e apenas fazer
joinpdf-magic-command *.pdf
e faça com que o PDF de saída esteja na ordem correta.
Encontrei muitas ferramentas para mesclar PDFs ( pdfjoin
, pdftk
), mas todas elas colocam os PDFs na ordem em que aparecem na linha de comando.
editar:
Um exemplo de lista de capítulos pode ser:
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
Mas para outros livros haverá outras seções, seus nomes poderão ser diferentes, e até mesmo seções com o mesmo nome poderão ser colocadas em ordens diferentes. É por isso que mencionei que usar os números das páginas pode ser a chave.
Responder1
Não há mágica que você possa usar para classificar os capítulos do seu livro automaticamente - não, se a convenção de nomenclatura de arquivos não suportar isso. Este é um ato que deve ser realizado por um humano.
A única maneira de fazer issorápidoé colocar os nomes dos arquivos ordenados em um arquivo de texto, semelhante ao que você citou no seu OP.
Depois basta executar:
pdftk $(cat mychapters.txt) cat output book.pdf
Responder2
Pessoalmente, eu não procuraria uma nova ferramenta, mas sim agruparia seu fluxo de trabalho em um script para impor a ordem correta.
Presumo que você tenha alguma maneira de identificar a ordem correta, caso contrário isso não será possível. Idealmente, você teria os arquivos nomeados de forma que eles caíssem automaticamente na ordem correta:
01ChapterTitleOne.pdf
02ChapterTitleTwo.pdf
etc.
e assim por diante. Você pode ter o número do capítulo no final (como no exemplo de Michael), o que quebra a classificação. Nesse caso, você deve adicionar uma etapa ao script de fluxo de trabalho que renomeie os arquivos para que eles fiquem na ordem correta.
Contanto que os arquivos tenham nomes consistentes, isso não deve ser um problema. Se você puder compartilhar mais informações sobre a nomenclatura, tenho certeza de que podemos criar um script BASH para fazer isso.
Depois de nomear tudo corretamente, você poderá usar o mesmo comando com o qual começou como segunda etapa do script de fluxo de trabalho. Se isso não funcionasse, você precisaria de um script BASH um pouco mais complexo que percorresse os arquivos na ordem correta.
Tudo isso é padrão para scripts BASH, mas tudo gira em torno de uma nomenclatura consistente dos arquivos.