JPEG файлы в PDF
У меня есть много файлов JPEG в каталоге, и я хочу преобразовать их в PDF и объединить их вместе, чтобы сделать документ. Как это можно сделать? Я бы предпочел командную строку, так как она будет быстрее.
11 ответов
От imagemagick
пакет, используйте convert
команда:
convert *.jpg pictures.pdf
Вы получите один PDF-файл, содержащий все JPG в текущей папке.
Установите IM с:
sudo apt-get install imagemagick
источник: stackoverflow
Изменить: Обратите внимание, что изображения будут не в определенном порядке, если они не нумеруются. если у вас есть 10 или больше, вам нужно назвать их заканчивая filename01.jpg...filename99.jpg и т. д. Для правильного упорядочения требуются начальные нули. Если у вас есть 100 или более 001...999.
К несчастью 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
convert `ls -1v` file.pdf
- Это ls перечислит один файл за раз в "естественном порядке" (1,2,3...) и продолжит преобразование.
Сработало для меня (НО предупреждение! Отключает сжатие, и в результате 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
Мне любопытно, что никто не указал на pdfjam, который является очень эффективным способом объединения изображений /pdf в pdf:
pdfjam --a4paper *.jpg
создаст для вас pdf в формате А4 для всех .jpg
файлы, обычно именуемые с -pdfjam.pdf
в конце. Чтобы форсировать конкретное имя выхода, у вас есть --output <your output>
вариант!
Насколько я вижу, перекодирование файла не происходит, что делает команду довольно быстрой по сравнению с convert
,
Чтобы установить pdfjam, я не уверен, что знаю, какой самый эффективный способ (он поставляется автоматически с LaTeX), но вы можете попробовать:
sudo apt install pdfjam
или, может быть
sudo apt install texlive-extra-utils
Откройте файл jpg или png с помощью LibreOffice Writer и экспортируйте в формате PDF.
Надеюсь, это простой способ экспортировать PDF.
Следующее решение также опирается на ImageMagick's convert
но немного сложнее, потому что:
- Это позволяет всем изображениям иметь разные размеры, сохраняя при этом размер выходной страницы PDF (A4 в примере ниже).
- Центрирует изображения на странице PDF.
- Это позволяет гарантировать минимальное расстояние между границами изображения и границами страницы PDF, что позволяет печатать PDF без проблем.
- Это не меняет данные изображения. (Таким образом, качество изображения не изменяется, размер файла PDF примерно такой же, как у изображения, и вы можете повторно извлечь исходные изображения позже,
pdfimages -j file.pdf img
.) В настоящее время это работает только с PNG - см. Комментарий @dma_k ниже.
Инструкции:
- Используйте мой сценарий из этого ответа, чтобы преобразовать каждое изображение в собственный одностраничный PDF-файл с размером страницы A4 и 5% -ой границей вокруг.
Объедините все ваши одностраничные файлы PDF с PDFtk следующим образом:
pdftk *.pdf cat output out.pdf
С использованием
img2pdf
Вы можете сделать это.
Но иногда вам может понадобиться, чтобы ваши изображения были преобразованы в документ в порядке по метке времени, размеру или имени. Чтобы сделать это возможным, этот скрипт делает эту работу.
ls -trQ | tr '\n' ' ' | sed 's/$/\ --output\ mydoc.pdf/' | xargs img2pdf
Вместо mydoc.pdf введите имя выходного файла по вашему желанию.
Вариант
ls
команда (вместо
-tr
используйте их в соответствии с вашими потребностями)
-
-S
, сортировать по размеру файла, сначала самый большой -
-t
, сортировать по времени модификации, сначала самые новые -
-X
, отсортировать в алфавитном порядке по расширению записи -
-r
, обратный порядок при сортировке
Это скромно, но размер файла может резко увеличиться. Чтобы избежать увеличения размера файла, вы можете выполнить следующие действия:
а) Сначала вам нужно экспортировать с помощью "gimp" *.jpeg-файлы в *.jpg-файлы. (jpeg - это формат Apple - jpeg и jpg НЕ совпадают!).jpg-файлу потребуется небольшое белое или черное «паспарту» (= рамка).
б) С помощью Android и приложения «фотокомпресс» я сжимаю файлы jpg до размера менее 300 КБ каждый.
c) затем вернитесь к рабочему столу Ubuntu, вы можете редактировать эти файлы с помощью Libre-Office и создать с ними pdf-карту.
Наверняка кто-нибудь знает, как это работает от а) до в) просто в терминале?
Побочным эффектом этого является то, что это может произойти из-за правильного размера байта, у получателя с плохим $microsaft есть постеры, но это не ваша вина.
Хотя convert выполняет свою работу, он пытается открыть все исходные файлы вместе, и если у вас много файлов и нет большого объема оперативной памяти, вы можете запустить его.
В качестве альтернативы вы можете запустить следующие команды в терминале, находясь в папке, где находятся файлы jpg.
ls *.jpg | xargs -I% img2pdf -o %.pdf %
Это преобразует каждое изображение в одностраничный PDF-файл одно за другим, не перегружая систему. Затем:
pdfunite *.pdf output.pdf && rm *.jpg.pdf
Это объединяет PDF-файлы в один PDF-файл и удаляет одностраничные.
Я использовал http://convert-my-image.com/ Положительный момент, который вы можете предоставить (тот же сайт, но другую страницу) архив изображений и объединить их в общий PDF