Как я могу преобразовать серию изображений в PDF из командной строки на Linux? [закрыто]


216

У меня есть сервер сканирования, который я написал в cgi / bash, и хочу иметь возможность конвертировать несколько изображений (все в одной папке) в pdf из командной строки. Как это можно сделать?


Смотрите также Как создать PDF из серии изображений? на суперпользователя.
Зрайм


7
Используйте img2pdf , а не ImageMagick. ImageMagick декодирует JPEG, что приводит к потере генерации и в 10–100 раз медленнее, чем img2pdf.
Роберт Флеминг

1
sudo apt-get install gscan2pdf для простого и удобного использования.
М Хазик

1
img2pdf $(find . -iname '*.jpg' | sort -V) -o ./document.pdfдаст вам document.pdfвсе изображения с расширением jpg или JPG в текущем каталоге - одно изображение на страницу. document.pdfвсе изображения будут упорядочены как страницы естественным образом ( -Vопция sort), поэтому нет нужды добавлять начальные нули при нумерации файлов изображений.
Джиммикс

Ответы:


411

Используя imagemagick , вы можете попробовать:

convert page.png page.pdf

Или для нескольких изображений:

convert page*.png mydoc.pdf

7
Что делать, если страница * .png не сортирует изображения так, как вы хотите? например, page_1.png, page_2.png ... page_10.png -> page_10 появится перед page_1
vcarel

38
Для сортировки файлов вы можете использовать:ls page*.png | sort -n | tr '\n' ' ' | sed 's/$/\ mydoc.pdf/' | xargs convert
GaloisPlusPlus

26
К вашему сведению, вам почти никогда не нужно lsничего использовать, кроме отображения файлов ... т.е. не анализировать вывод. findэто гораздо более подходящий инструмент. Вот пример convert $(find -maxdepth 1 -type f -name 'page*.png' | sort -n | paste -sd\ ) output.pdf. Имейте в виду, что вышеупомянутая команда не будет работать, если ваши пути содержат пробелы. Добавление символов, которые необходимо экранировать, немного усложняет ситуацию.
6

20
Это просто и работает очень хорошо, спасибо! Чтобы избежать создания огромных файлов PDF, используйте что-то вродеconvert -compress jpeg -quality 85 *.png out.pdf
jlh

13
ImageMagick декодирует JPEG, что приводит к потере генерации . Используйте вместо него img2pdf ; это также в 10–100 раз быстрее.
Роберт Флеминг

13

Используйте convertс http://www.imagemagick.org . (Легко поставляется в виде пакета в большинстве дистрибутивов Linux.)


30
ImageMagick декодирует JPEG, что приводит к потере генерации . Используйте вместо него img2pdf ; это также в 10–100 раз быстрее.
Роберт Флеминг

9
Примечание: img2pdf перемещен в gitlab.mister-muffin.de/josch/img2pdf .
кельвин
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.