LINUX.ORG.RU

Jpg2pdf

 , jpg2pdf,


1

1

Нужно из jpg сделать pdf

Жипегов 380 штук по 1мб каждый.

При попытке сделать это с помощью

 convert *.jpg - resize 40% - quality 60 out.pdf

Компьютер отжирает 8Г памяти, 5Г свопа и впадает в кататонию.

Как собрать пдф из этих файлов?

★★★★★

Ответ на: комментарий от xDShot

В один многостраничный. Это книга.

pyometra ★★★★★
() автор топика
Ответ на: комментарий от pyometra

Например так

for f in *.jpg; do convert "$f" "$f.pdf"; done; pdftk *.pdf cat output final.pdf

В твоем случае примерно так

#!/bin/bash

# apt-get install imagemagick pdftk

cd $1   # в качестве аргумента путь к каталогу
FILES=$( find . -type f -name "*jpg" | cut -d/ -f 2)
mkdir temp > /dev/null
cd temp

for file in $FILES; do
 BASE=$(echo $file | sed 's/.jpg//g');
 convert ../$BASE.jpg $BASE.pdf;
done &&

pdftk `ls -v *pdf` cat output ../`basename $1`.pdf
cd ..
rm -rf temp

Подправь под себя и всё будет хорошо. Успехов.

sin-ok
()

Нужно из jpg сделать pdf
convert *.jpg -resize 40% -quality 60 out.pdf

Пересжатие jpeg с downsample 40% с качеством 60. «Плохая» книжка получится.

Если без downsample никак, есть возможность применить mozjpeg, либо jpge вместо стандартного libjpeg, что значительно снизит ухудшение качества «текста» на изображении.

Если без downsample можно обойтись, использовать jpeg-recompress (который в свою очередь использует mozjpeg и метрики ssim(libiqa) и libsmallfry) для уменьшения размера изображений без ухудшения качества «текста» на изображениях.

Для преобразования jpeg в pdf рекомендую использовать lossless пеобразование python-img2pdf (использует python-pillow).

Deleted
()
Ответ на: комментарий от Deleted

спасибо попробую.

пока получилось сделать в три шага

for name in `ls *.jpg`; do convert -level 60%,100%,1 -resize 60% $name mini/$name; done
for name in `ls *.jpg`; do convert  $name pdfs/$name.pdf; done
pdftk *.pdf output out.pdf

файл большой,ю но качество приемлемое.

pyometra ★★★★★
() автор топика
Ответ на: комментарий от pyometra

for name in `ls *.jpg`; do convert $name pdfs/$name.pdf; done

Отсутствует dpi.

Пример:

$ for tjpg in *.jpg; do convert -density 150 $tjpg pdfs/${tjpg%.jpg}.pdf; done

DPI: 300(A4) - 2480x3507, 150(A4) - 1240x1754

Deleted
()
Ответ на: комментарий от pyometra

Нормально для ~400 страничного пдф 200М это приемлемо, я думаю.

Ну по идее [размер jpeg] ~= [размер pdf] для lossless jpeg->pdf.

С преобразованием convert может быть по другому.

А про «нормальность». Сейчас «нормально» - это dpi=600, 25Mb на 100 страниц. Но это уже не без участия scantailor.

Deleted
()
Ответ на: комментарий от Deleted

А про «нормальность». Сейчас «нормально» - это dpi=600, 25Mb на 100 страниц

ну не вижу причин подгонять под это :)

книга не для распространения и, упаси боже, не для печати.

pyometra ★★★★★
() автор топика
Ответ на: комментарий от pyometra

книга не для распространения и, упаси боже, не для печати.

«Это» - оцифрованная книга

«Это» = «это». «Это» != «книга».

Deleted
()
Ответ на: комментарий от gag

Я использую оригинал

Можно и оригинал.

Тока ТС ссылки в тему не выносит. Поэтому я и сыпать ими не особо стремлюсь. Ну и git сам же всё покажет.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.