Преобразование каталога файлов JPEG в один документ PDF

242

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

Как это может быть сделано?

Я бы предпочел использовать командную строку, так как этот процесс будет быстрее.

lovespeed
источник

Ответы:

358

Из imagemagickпакета используйте convertкоманду:

convert *.jpg pictures.pdf

Вы получите один PDF-файл, содержащий все JPG в текущей папке.

Установите IM с:

sudo apt-get install imagemagick

источник: stackoverflow

Изменить: Обратите внимание, что изображения будут не в определенном порядке, если они не нумеруются. если у вас есть 10 или больше, вам нужно назвать их заканчивая filename01.jpg ... filename99.jpg и т. д. Для правильного упорядочения требуются начальные нули. Если у вас есть 100 или более 001 ... 999.

Rosch
источник
1
Использование джокера не помогло мне, мне пришлось использовать решение @ Alex.
Евсевий
2
@Eusebius, если подстановочный знак не работает для вас с конвертированием, вы можете использовать oneliner какfor f in *.jpg; do convert "$f" "$f.pdf"; done; pdftk *.pdf cat output final.pdf
Elder Geek
1
GrphicMagickпользователи должны бежатьgm convert *.jpg pictures.pdf
michaelbn
Может быть, мои jpg-файлы слишком большие и многочисленные, но при этом почти сразу же потреблялось столько оперативной памяти, что моя система на 16 ГБ начала обмениваться.
RonJohn
8
Обратите внимание, что этот метод может теперь привести к not authorizedошибке; см. этот связанный вопрос (и ответы) .
Яни Ууситало
31
convert `ls -1v` file.pdf
  • Это ls перечислит один файл за раз в «естественном порядке» (1,2,3 ...) и продолжит преобразование.
Alex
источник
1
Я попробовал это, и это не сработало для меня. многочисленные ошибки указывают на то, что это может быть связано с пробелами в именах файлов.
Старейшина Гик
5
Чтобы решить проблему с пробелами, сначала выполните замену шаблона: для ThisFile в * .jpg; do mv "$ ThisFile" "$ {ThisFile // / _}"> / dev / null 2> & 1; d
Саймон Мэттес
20

Сработало для меня (НО предупреждение! Отключает сжатие, и в результате PDF будет большим!):

convert page1.jpg page2.jpg +compress file.pdf

или даже:

convert -rotate 90 page\*.jpg +compress file.pdf

С ubuntuforums.org, +compressпомогает ему не висеть. ПРИМЕЧАНИЕ. Сжатие + отключает сжатие. Машина, над которой я работал в то время, казалось, зависала «навсегда» (хотя я не ждал вечно, чтобы узнать.) Без опции + compress. Ваш пробег может меняться совсем немного! RTFM на imagemagick.org , опция -compress , возможно, поэкспериментируйте с -compress <type>, если у вас проблемы с медленным сжатием / зависанием, чтобы выяснить, что будет работать для вас.

gaoithe
источник
13
НЕ используйте +compressопцию с convertкомандой, как предложено выше! Это фактически отключает все сжатия, оставляя вас с PDF в 10 раз больше, чем оригинальный JPEG. Просто не указывайте параметры сжатия, и convertбудет идти с форматом сжатия ввода (JPEG), который в этом случае является лучшим по размеру файла параметров. Источник: http://www.imagemagick.org/script/command-line-options.php#compress
Это не интуитивно понятно! Спасибо С Миндал. Это сработало для меня. Я предполагаю, что у машины, которую я использовал, была проблема, делающая сжатие тогда. Я буду корректировать ответ.
Gaoithe
2
так $ converet *.jpg file.pdfхорошо работал с меньшим размером файла, чем с +compressаргументом
докторская степень
18

К сожалению, convertкачество изображения меняется перед «упаковкой» в PDF. Итак, чтобы иметь минимальную потерю качества, лучше поместить оригинал jpgв PDF-файл, который необходимо использовать img2pdf.

Я использую эти команды:

  1. Эта команда делает pdfфайл из каждого jpgизображения без потери разрешения или качества:

    ls -1 ./*jpg | xargs -L1 -I {} img2pdf {} -o {} .pdf

  2. Эта команда объединит pdfстраницы в один документ:

    pdftk * .pdf комбинированный вывод cat.pdf

  3. И, наконец, я добавляю текстовый слой OCRed, который не изменяет качество сканирования в PDF-файлах, чтобы их можно было искать:

    pypdfocr комбинированный.pdf

    Альтернатива использованию pypdfocr:

    ocrmypdf комбинированный. PDF комбинированный_ocr.pdf

Эдуард Флоринеску
источник
1
Отличный метод! Единственным недостатком без сжатия будет то, что результирующий размер файла .pdf будет очень высоким (то есть немного большим, чем все картинки вместе взятые). Но оно того стоит, если документ, который вы конвертируете, действительно важный!
Гокул NC
1
Это работало нормально после convertсбоя с «попыткой выполнить операцию, не разрешенную политикой безопасности« PDF »».
Матиас Браун
12

Откройте файл jpg или png с помощью LibreOffice Writer и экспортируйте в формате PDF.

Надеюсь, это простой способ экспортировать PDF.

user359154
источник
Да! LibreOffice - лучший способ экспортировать файлы изображений в PDF. У нас есть полный контроль над выводом PDF, включая макет страницы, изменение размера импортированных файлов, дополнительные колонтитулы и многое другое… Большое спасибо пользователю 359154 за умное предложение!
8

Следующее решение также опирается на ImageMagick, convertно оно немного сложнее, потому что:

  • Это позволяет всем изображениям иметь разные размеры, сохраняя при этом размер выходной страницы PDF (A4 в примере ниже).
  • Центрирует изображения на странице PDF.
  • Это позволяет гарантировать минимальное расстояние между границами изображения и границами страницы PDF, что позволяет печатать PDF без проблем.
  • Это не меняет данные изображения. (Таким образом, качество изображения не изменяется, размер файла PDF примерно такой же, как у изображения, и вы можете повторно извлечь исходные изображения позже pdfimages -j file.pdf img.) В настоящее время это работает только с PNG - см. Комментарий @dma_k ниже. ,

Инструкции:

  1. Используйте мой сценарий из этого ответа, чтобы преобразовать каждое изображение в собственный одностраничный PDF-файл с размером страницы A4 и 5% -ой границей вокруг.
  2. Объедините все ваши одностраничные файлы PDF с PDFtk следующим образом:

    pdftk *.pdf cat output out.pdf
    
tanius
источник
2
Эта команда показывает , что ( по крайней мере , с версиями , поставляемых на Ubuntu 16.04) данных изображения является влияние:convert some.jpg -format pdf -compress jpeg generated.pdf ; pdfimages -j generated.pdf generated.pdf ; diff -sq some.jpg generated.pdf-000.jpg
Стефан Горичон
2
Я играл с GraphicsMagick и заметил, что он выполняет повторное сжатие изображения . Качество получаемого изображения JPEG на странице PDF намного хуже. Поэтому на данный момент самый безопасный способ - добавить изображения в формате PNG - они вставлены правильно. Смотрите также этот пост .
dma_k
-3

Я использовал http://convert-my-image.com/ Положительный момент, который вы можете предоставить (тот же сайт, но другую страницу) архив изображений и объединить их в общий PDF

Alen
источник
3
Это предложение имеет как минимум три проблемы: (1) оно будет медленным из-за загрузки изображений на веб-сайт и загрузки полученного PDF; (2) он предоставляет ваши данные любому, кто управляет этим сайтом, и любому, кто мог взломать этот сайт, и любому, кто находится в сети; (3) это не решение командной строки.
Сампаблокупер