Укажите список файлов для ввода в pdftk

708
Jeff Bauer

У меня есть список файлов, которые мне нужно указать в качестве входных данных для pdftk, чтобы он объединял их в указанном порядке. Я не вижу список входных файлов как параметр на странице руководства pdftk, но, возможно, есть обходной путь для достижения аналогичного результата?

2
Итак, вы хотите использовать значения из списка как имена файлов и порядок, в котором они должны быть объединены, правильно? Pimp Juice IT 6 лет назад 0
@ McDonald's Да, правильно. Jeff Bauer 6 лет назад 0
Не уверен, поможет ли это с этим или нет, но посмотрите некоторые ответы здесь https://stackoverflow.com/questions/1521462/looping-through-the-content-of-a-file-in-bash. Если бы это была Windows, я бы, наверное, понял это, но я все еще изучаю мир Linux и сейчас мне нечего протестировать. Pimp Juice IT 6 лет назад 0

1 ответ на вопрос

3
user3188140

Это описано в разделе примеров на странице руководства:

Присоединитесь к in1.pdf и in2.pdf в новый PDF, out1.pdf:

 pdftk in1.pdf in2.pdf cat output out1.pdf 

или (используя ручки):

 pdftk A=in1.pdf B=in2.pdf cat A B output out1.pdf 

или (с использованием подстановочных знаков):

 pdftk *.pdf cat output combined.pdf 

Конечно, вы можете использовать shell или xargs для расширения списка до входных pdf-аргументов ...

Пример concat для всех файлов, указанных в файле files.txt (при условии отсутствия проблем с пробелами в именах файлов и т. Д.)

pdftk $(cat files.txt) cat output out.pdf 
@ user3188140 Я безуспешно пробовал различные варианты объединения xargs и pdftk, например: xargs -I {} pdftk {} cat output result.pdf Jeff Bauer 6 лет назад 0
@JeffBauer: вы можете использовать: cat files.txt | XARGS | xargs -I {} bash -c "eval pdftk {} cat output out.pdf" - но эта конструкция также имеет проблемы с пробелами и длиной командной строки. user3188140 6 лет назад 0
С добавлением последней части вашего ответа $ (cat files.txt) это становится принятым ответом. Спасибо за вашу помощь! Jeff Bauer 6 лет назад 0

Похожие вопросы