LINUX.ORG.RU

Convert - не хватает памяти на 326 страниц?

 , ,


0

1

Пытаюсь сгенерировать PDF-файл в разрешении 600 dpi из 326 страничек.

Команда:

convert -density 600 *.tif result_01.pdf

Комп задумывается часа на два, потом вываливаются ошибки:

convert.im6: unable to extend cache `resultpage272.tif': На устройстве не осталось свободного места @ error/cache.c/OpenPixelCache/4099.
...
convert.im6: unable to extend cache `resultpage326.tif': На устройстве не осталось свободного места @ error/cache.c/OpenPixelCache/4099.

На корневом разделе у меня 37 Гиг свободно. Неужели ImageMagick-ку мало пространства на диске? Или ему мало свопа? (Память в 4 Гига забивается полностью, когда работает convert).

Как обойти это ограничение?

★★★★★

только мудаки собирают pdf целиком из растра, и потому должны страдать

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

Собери постранично, затем pdftk чтобы склеить.

Имеешь в виду, понаделать одностраничных PDF, потом склеить их в один?

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

да. я так делал, когда столкнулся с такой проблемой как у тебя

А нормального решения нет?

Неужели действительно каких-то ресурсов не хватает?

Xintrea ★★★★★
() автор топика

На тебе скрипт:

#!/bin/sh
#
#	mkbook -- makes pdf book from scanned jpeg images
#
echo -e "\\\documentclass[a4paper]{article}\n\\\usepackage{ed}\n" > book.tex
echo -e "\\\begin{document}\n\\\begin{center}" >> book.tex

cp /Data/scripts/ed.sty ./

for file in `ls *.jpg`
do
    name=`echo $file | sed "s/.jpg//"`
    convert -page A4 $file $name.pdf
    echo "$file processed"
    echo -e "\\\includegraphics[height=30cm,width=20cm]{$name.pdf}\\\pagebreak\n" >> book.tex
done
echo -e "\\\end{center}\n\\\end{document}" >> book.tex
pdflatex book.tex
Но из тифов pdf крайне жирный будет. Лучше дежавю сделай:
#!/bin/sh
# this script has been written by Eddy 
#
#		mkdjvu
#
# Создан 05-го Август 2004 года в 13:15
#
echo "Beginning"
for file in `ls -1`
do
    c44 $file
    echo "File $file processed"
done
echo -e "Linking all... \c"
djvm -c book.djview *.djvu
echo "Done!"
rm *.djvu
mv book.djview book.djvu

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

На тебе скрипт

О боженьки, какой же уродливый синтаксис у баша, вспомнил и вздрогнул.

Я с некоторых пор все делаю через python с помощью функции:

# Запуск внешней программы
def runCommand(cmd):
  print(cmd)

  p=Popen(cmd, stdout=PIPE, shell=True)
  stdOutData, stdErrData = p.communicate()
  errCode=p.returncode

  # Убирается последний перенос строк, чтобы в конце небыло пустой строки
  stdOutData=re.sub("\n$", '', str(stdOutData))
  stdErrData=re.sub("\n$", '', str(stdErrData))

  return(stdOutData, stdErrData, errCode)

Сделал PDF-ку через pdftk.

Но из тифов pdf крайне жирный будет. Лучше дежавю сделай

Да и пофигу. А дежавю слишком ублюдский формат, он текст портит совсем как в жопеге.

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

пхытон — это ваще финиш!

А дежавю слишком ублюдский формат

не сказал бы

Eddy_Em ☆☆☆☆☆
()

Сканы лучше в djvu собирать. Меньше места занимают. Как-то так (для черно-белого результата, например для книжки из сканов):

for i in *.tif; do convert -contrast -gamma 1.9 -normalize $i ${i%tif}pnm; done
for i in *.pnm; do convert $i ${i%.pnm}.pbm; done
for i in *.pbm; do cjb2 -dpi 300 -clean $i ${i%pbm}djvu; done
djvm -c book.djvu *.djvu
Параметры -contrast -gamma 1.9 -normalize сам решишь, нужны ли. Для пожелтевшей от времени бумаги они хорошо пошли у меня. 600 dpi для скана не надо обычно. Картинки сначала под один размер подгони, чтоб красивее было. Можно и сразу в pbm, но вдруг тебе цвет нужен?

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

А дежавю слишком ублюдский формат, он текст портит совсем как в жопеге.

Это как пожмешь. А как сам формат PDF - хуже.

peregrine ★★★★★
()

cast Xintrea

скора не хватает, чтобы отпостить в той теме в толксах.

не уверен, что там все-таки дата. может, попробовать соотнести примерный год выпуска с теми цифрами? 6, 9, еще что там...

но:

https://bakadonosama.livejournal.com/3734.html

https://en.wikipedia.org/wiki/Date_and_time_notation_in_Japan

вдруг поможет :D

veco
()

У тебя /tmp не в RAM случаем? Если да, то надо либо временно на диск перетащить, либо конвертеру как-нибудь другой путь подсунуть.

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