Я знаю что команда convert *.jpg myPdf1.pdf
может преобразовать несколько файлов JPEG в единственный PDF.
Но я хотел бы преобразовать несколько JPEGs в несколько PDFs, например:
myJPG1.jpg → myPDF1.pdf
myJPG2.jpg → myPDF2.pdf
myJPG3.jpg → myPDF3.pdf
Там какой-либо достойный путь состоит в том, чтобы управлять чем-то как этот?
Мой первый инстинкт для файлов пакетной обработки почти всегда find
. Это превосходно, если необходимо создать в каком-либо виде из фильтрации (который Вы не делаете здесь), но это - все еще фаворит. Это также рекурсивно вызовет в подкаталоги, если Вы не скажете его (с -maxdepth 1
или другой):
find -name '*.jpg' -exec convert "{}" "{}.pdf" \;
rename 's/\.jpg\.pdf$/.pdf/' *.jpg.pdf
find
/ convert
оператор произведет загрузку .jpg.pdf
файлы. Второе очищает это.
, Возможно, немного более изящный подход в таком простом случае:
for file in *.jpg ; do convert "$file" "${file/%jpg/pdf}"; done
Это не рекурсивно вызывает, и Вы не должны бездельничать чистке имен файлов.
<час> И я почти забыл, ImageMagick имеет числовой вывод, который мог бы соответствовать Вашему примеру использования отлично. Следующее просто засунет трехразрядный идентификатор (000
, 001
, 002
, и т.д.) на конце "myPDF":
convert *.jpg myPDF%03d.pdf
, Очевидно, если Вы имеете дело больше чем с тысячей записей, увеличьте число. Если Вы не хотите дополненный нулем, удалите начальный нуль.
К сожалению, convert
изменяет изображение прежде так, чтобы иметь минимальную потерю качества оригинала jpg
необходимо использовать img2pdf
который делает pdf
с оригиналом jpg
так никакая потеря, я использую, это управляет:
1) Это для создания a pdf
файл из каждого jpg
изображение без потери или разрешения или качества:
ls -1 ./*jpg | xargs -L1 -I {} img2pdf {} -o {}.pdf
2) Здесь Вы будете иметь *.pdf
s как *.jpg.pdf
, так сделает немного переименования
mmv "*.jpg.pdf" "#1.pdf"
Необходимо установить img2pdf и mmv
sudo apt install img2pdf mmv