JPEG файлы в PDF

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

242
задан 23.08.2019, 20:57

7 ответов

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

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

Инструкции:

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

    pdftk *.pdf cat output out.pdf
    
8
ответ дан 15.10.2019, 18:28
  • 1
    Эта команда показывает, что (по крайней мере, с версиями, предоставленными на 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 – skitheo 21.07.2016, 03:14
  • 2
    Я играл с GraphicsMagick, и я заметил, что он выполняет повторное сжатие изображения . Качество получающегося изображения JPEG на странице PDF намного хуже. Таким образом, в данный момент самый безопасный путь состоит в том, чтобы добавить, что PNG отображает †“, они вставляются правильно. См. это сообщение также. – jpaugh 01.10.2017, 19:55

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

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

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

2) Это для объединения pdf страниц в одну:

pdftk *.pdf cat output combined.pdf

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

pypdfocr combined.pdf  

В качестве альтернативы pypdfocr:

ocrmypdf combined.pdf combined_ocr.pdf  
18
ответ дан 15.10.2019, 18:28
  • 1
    Замечательный метод! Единственный недостаток без сжатия был бы то, что получающийся размер файла pdf будет очень высоким (то есть, немного больше, чем все рисунки объединились). Но стоящий того, если документ you' преобразование ре является действительно важным! – personne3000 23.12.2018, 15:14
  • 2
    Это хорошо работало после convert отказавший с " попытка выполнить операцию, не позволенную политикой безопасности 'PDF' ". – Alexandre Mazel 06.05.2019, 18:33

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

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

или даже:

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

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

20
ответ дан 15.10.2019, 18:28
  • 1
    Не используйте +compress опция с эти convert команда, как предложено выше! Это на самом деле отключает все сжатие, оставляя Вас с PDF в 10 раз более крупными, чем исходный JPEG. Просто don' t определяют, что опции сжатия, и convert пойдут с входным форматом сжатия (JPEG), который в этом случае является мудрым размером файла наилучшим вариантом. Источник: http://www.imagemagick.org/script/command-line-options.php#compress – Philip Potter 07.10.2014, 23:25
  • 2
    Это не интуитивно! Спасибо S Minddal. Это действительно работало на меня. Я предполагаю машину, которую я использовал, имел проблему при выполнении сжатия тогда. Я скорректирую ответ. – static_cast 08.10.2014, 17:31
  • 3
    так $ converet *.jpg file.pdf работал хорошо с меньшим размером файла, чем с +compress аргумент – Bob Stein 01.09.2015, 21:02
  • 4
    +1 для -rotate – isapir 17.02.2019, 09:45

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

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

12
ответ дан 15.10.2019, 18:28
  • 1
    Да! LibreOffice является лучшим способом экспортировать файлы изображений в PDF. Мы имеем полный контроль над выводом PDF, включая макет страницы, изменение размеров импортированных файлов, дополнительные заголовки и нижние колонтитулы e больше... Большое спасибо user359154 для умного предложения! – Eonil 22.01.2015, 18:59

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

-3
ответ дан 15.10.2019, 18:28
  • 1
    Это предложение имеет по крайней мере три проблемы: (1) это будет медленно, из-за загрузки изображений к веб-сайту и загрузке получающегося PDF; (2) это представляет Ваши данные тому, кто бы ни выполняет тот веб-сайт, и любому, кто, возможно, нарушил тот веб-сайт, и любому на проводе; (3) это не решение командной строки. – Vi. 12.10.2018, 19:59
convert `ls -1v` file.pdf
  • Этот ls перечислит один файл за раз в «естественном порядке» (1,2,3 ...) и продолжит преобразование.
31
ответ дан 15.10.2019, 18:28
  • 1
    Что я искал для преобразования отсканированных изображений старой книги к версии PDF. – Nancy Mooree 09.04.2015, 18:08
  • 2
    Я попробовал это и это didn' t работают на меня. многочисленные ошибки указывают, что это могло бы иметь некоторое отношение к пробелам в именах файлов. – Ray 02.12.2015, 01:31
  • 3
    Для заботы о проблеме пробелов выполните замену шаблона сначала: для ThisFile в *.jpg; сделайте mv " $ThisFile" " $ {ThisFile///_} " >/dev/null 2> & 1; d – Eric Andres 01.05.2018, 16:06

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

convert *.jpg pictures.pdf

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

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

sudo apt-get install imagemagick

источник: stackoverflow

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

358
ответ дан 15.10.2019, 18:28
  • 1
    Ничего себе, это удобный soooo! – Sam H 20.04.2014, 11:39
  • 2
    @lovespeed, Почему этот ответ не был принят? – blogob 08.10.2014, 10:45
  • 3
    Используя шутника didn' t работают на меня, я должен был использовать @Alex' s решение. – RDRick 11.09.2015, 12:31
  • 4
    @Eusebius, если подстановочный знак doesn' t работают на Вас с преобразованием, Вы могли использовать остроту как for f in *.jpg; do convert "$f" "$f.pdf"; done; pdftk *.pdf cat output final.pdf – Stephen Drew 02.12.2015, 02:00
  • 5
    GrphicMagick пользователи должны работать gm convert *.jpg pictures.pdf – saschabeaumont 16.01.2017, 11:50
  • 6
    Возможно, мои jpg файлы являются слишком большими и многочисленными, но выполнение, которое почти сразу использовало так много RAM, что моя система на 16 ГБ начала подкачивать. – Daniel de Zwaan 13.04.2018, 00:18
  • 7
    Обратите внимание, что этот метод может теперь привести к not authorized ошибка; посмотрите этот связанный вопрос (и ответы) . – Ray 16.04.2019, 15:45

Теги

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