Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Проблемы с созданием pdf.  (Прочитано 512 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн asterisk

  • Автор темы
  • Любитель
  • *
  • Сообщений: 92
    • Просмотр профиля
Проблемы с созданием pdf.
« : 28 Января 2011, 11:54:51 »
Есть папка с отсканированными страницами. Все изображения в папке пронумерованы от 0 до 193.
Для создания pdf-ки использую
#!/bin/bash

j=0

#Получаем много pdf файлов с именами от 0 до количества jpg-файлов в папке:
for i in `ls ./ | grep .jpg`
do
convert $i -quality 50% $j.pdf
((j++))
done


#Сливаем их в один файл и на уровне выше получаем нужный файл (только сначала нужно поставить пакет "pdftk"):
pdftk *.pdf output ../out.pdf

#Удаляем временные pdf-файлы:
rm *.pdf
Проблема возникает уже на этом шаге
#Получаем много pdf файлов с именами от 0 до количества jpg-файлов в папке:
for i in `ls ./ | grep .jpg`
do
convert $i -quality 50% $j.pdf
((j++))
done
Например: картинке 154.jpg создаётся 2.pdf.
Как результат
на выходе получаю pdf-ку со страницами идущими в разнобой. Как исправить скрипт чтобы страницы шли в строгом соответствии  от 0 до 193....
« Последнее редактирование: 28 Января 2011, 12:00:55 от asterisk »
Запомните - каждый человек, которому вы ответили на форуме "гугл в помощь" - потенциальный "возвращенец" в win.

Оффлайн scsiman

  • Активист
  • *
  • Сообщений: 344
    • Просмотр профиля
Re: Проблемы с созданием pdf.
« Ответ #1 : 28 Января 2011, 12:21:49 »
Можно покороче:
for i in `ls *.jpg`

Но всё равно будет неправильно, поскольку надо было обзывать файлы от 000 до 193.

Есть вариант через basename (пишу навскидку, под рукой шелла нет):

convert $i -quality 50% `basename $i.jpg .pdf`
// ((j++)) тогда эта строчка не нужна
Dell Studio XPS 16, Ubuntu 16.04 LTS (Home).
HP nx6110, Ubuntu 8.04 LTS => 10.04 LTS (Home).

Оффлайн aliftin

  • Старожил
  • *
  • Сообщений: 1398
    • Просмотр профиля
Re: Проблемы с созданием pdf.
« Ответ #2 : 28 Января 2011, 13:09:22 »
#!/bin/bash

z=0

for j in `ls ./image_folder`
do
t=`echo $j | sed 's/\.[a-zA-Z]*$//'`
m=`echo "$m" "$t"`
done



for i in $m
do
echo $i
done | sort -n | fmt > ./text



for l in `cat ./text`
do
p=`echo "$l"".jpg"`
convert ./image_folder/$p -quality 50% ./pdf_folder/$z.pdf
((z++))
done

Я sort нормально пользоваться не умею, по-этому я сделал так. Создаем скрипт, создаем папку с изображениями (image_folder) и создаем папку куда будут складироваться pdf-файлы (pdf-folder). У меня вроде работает нормально. Поищите, кажется обсуждали как лить картинки сразу в один pdf-файл.
Если мы не можем до чего то дотянуться, мы виним в этом не свой рост, не отсутствие табуретки, а свою цель.

Оффлайн asterisk

  • Автор темы
  • Любитель
  • *
  • Сообщений: 92
    • Просмотр профиля
Re: Проблемы с созданием pdf.
« Ответ #3 : 28 Января 2011, 14:03:51 »
Спасибо всем за ответы.
Разобрался сам. Правда савковым, но мне понятным и 100% работающим методом.
Для начала привел имена картинок к виду 000-193 с помощью pyrenamer
Затем создал pdf -ки
#!/bin/bash
j=0
for i in `ls ./ | grep .jpg`
do
convert $i -quality 50% $j.pdf
((j++))
done
Затем опять же с помощью pyrenamer привел их имена к виду 000-193.
Ну и наконец слил в один файл
pdftk *.pdf output ../out.pdf
Запомните - каждый человек, которому вы ответили на форуме "гугл в помощь" - потенциальный "возвращенец" в win.

 

Страница сгенерирована за 0.026 секунд. Запросов: 23.