LINUX.ORG.RU

Сфотографировать и отправить.


0

2

Приветствую:

Есть n-е количество книг в pdf и djvu форматах. Необходимо сфотографировать первую страницу каждой книги и отправить на что-нибудь типа радикала или имагашака. Ссылку надобно сохранить в какой-нибудь файл с указанием имени книги.

Что скажете?

Разрешаю.

// а в чем вопрос-то?

Eddy_Em ☆☆☆☆☆
()

Искать по словам «pdf tools», «image-magic», «как отправить файл почтой из командной строки».

anonymous
()

Кстати, не надо было писать «сфотографировать». А то сразу возникает мысль, что вам надо бумажные книжки пофотографировать :)

А так - convert'ом преобразуем первую страницу каждой книги в jpg, а потом curl'ом каким-нибудь отсылаем на картинкохранилище.

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

Заверни в скрипт

for file in $(find /path -name *.pdf); do <grab and send>; done

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

>Автоматом это все провернуть можно?

Да, сначала разберись чем это сделать, потом засунь в скрипт, который найдет все пдфки и сделает то, что ты хочешь.

Zhbert ★★★★★
()

Преобразовать 1-ю страницу pdf в жопег можно так:

pdftk $1  cat 1 output p1.pdf && convert -resize 1024 p1.pdf p1.jpg && rm -f p1.pdf

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

ddjvu, djvuextract извлекает в формате djvu

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

alex@AlexCones:~$ pdftk $1 cat 1 output p1.pdf && convert -resize 1024 p1.pdf p1.jpg
Error: No input files. Exiting.
Errors encountered. No output created.
Done. Input errors, so no output created.

Эммм... ЧЯДНТ?

alex@AlexCones:~$ ls
p1.pdf VirtualBox VMs Документы Изображения Проекты Системные
simutrans Видео Загрузки Музыка Рабочий стол

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

Тьфу, блин, я думал, что входной - это p1.pdf.
---
Ура, работает. Спасибо. Еще бы с djvu разобраться... Да какой-нибудь загрузчик консольный найти. А то imageshack-uploader из консоли свой GUI вызывает.

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

Так, теперь в цикле делаю, но высакие вает ошибка на все файлы - no input file:

for file in $(find ~/ *.pdf); do pdftk $1 cat 1 output p1.pdf && convert -resize 150 p1.pdf $1.jpg && rm -f p1.pdf; done

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

Странно.
Попробуйте omploader (чуть ниже на той же странице), он работает (по крайней мере, у меня).

Другое дело, что у всех подобных хостингов есть защита от роботов, и если загружать очень уж большое количество картинок, Вас заблокируют.

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

Блин, что-то я перед экзаменом совсем поехал... Спасибо.

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

>Другое дело, что у всех подобных хостингов есть защита от роботов, и если загружать очень уж большое количество картинок, Вас заблокируют.

Выход есть? Файлов около 1000.

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

ну если ограничение только на лень (в смысле что пофиг, за сколько он закончит работу, лишь бы самому не делать), то добавить в каждую итерацию цикла sleep 20;

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

omploader работает. Для того, чтобы в файл чисто ссылку на изображение перенести можно же скрипт поправить, чтобы кроме ссылки ничего не выводилось? | grep http:// не срабатывает.


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

Вот сейчас запускаю на 4-х тестовых файлах так:

alex@AlexCones:~/Test$ for file in $(find *.pdf); do pdftk $file cat 1 output p1.pdf && convert -resize 150 p1.pdf $file.jpg && ./upload.sh $file.jpg | grep http:// >> 1.txt && rm -f p1.pdf && rm -f $file.jpg && sleep 20000; done
OMPLOADER script by AITap, 2009
Published under GPLv3 or later
12K   _Journal_of_Computational_and_Applied_Mathematics_(Vol._127,_Issues_1-2)_(2001)(en)(368s).pdf.jpg
Please wait...
curl: (26) failed creating formpost data
OMPLOADER script by AITap, 2009
Published under GPLv3 or later
12K   _Journal_of_Computational_and_Applied_Mathematics_(Vol._128,_Issues_1-2)_(2001)(en)(467s).pdf.jpg
Please wait...
curl: (26) failed creating formpost data
OMPLOADER script by AITap, 2009
Published under GPLv3 or later
12K   _Numerical_analysis_2000._Vol.5._ODE_and_integral_equations_(2000)(en)(528s).pdf.jpg
######################################################################## 100,0%
OMPLOADER script by AITap, 2009
Published under GPLv3 or later
8,0K   Sommer_A._Geometric_computations_with_Clifford_algebras_(2000)(en)(568s).pdf.jpg
######################################################################## 100,0%


Все отрабатывает меньше чем за секунду, в 1.txt пусто. Файлы за собой не подчищаются.

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

1) Используйте ompoader <имена файлов> 2>/dev/null 1>>file.txt.
2)

curl: (26) failed creating formpost data

Это странно.

А тишина в file.txt может говорить о том, что Вы уже заблокированы.

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

Выполнил:

alex@AlexCones:~/Test$ for file in $(find *.pdf); do date && pdftk $file cat 1 output p1.pdf && convert -resize 150 p1.pdf $file.jpg && echo $file >> file.txt && ./upload.sh $file.jpg 2>/dev/null 1>>file.txt && rm p1.pdf && rm $file.jpg && sleep 20; done

(По строкам:
for file in $(find *.pdf); do
date &&
pdftk $file cat 1 output p1.pdf &&
convert -resize 150 p1.pdf $file.jpg &&
echo $file >> file.txt &&
./upload.sh $file.jpg 2>/dev/null 1>>file.txt &&
rm p1.pdf &&
rm $file.jpg && sleep 20; done

)


Результат в file.txt:


_Journal_of_Computational_and_Applied_Mathematics_(Vol._127,_Issues_1-2)_(2001)(en)(368s).pdf
_Journal_of_Computational_and_Applied_Mathematics_(Vol._128,_Issues_1-2)_(2001)(en)(467s).pdf
_Numerical_analysis_2000._Vol.5._ODE_and_integral_equations_(2000)(en)(528s).pdf
http://ompldr.org/vOHl2dw
Sommer_A._Geometric_computations_with_Clifford_algebras_(2000)(en)(568s).pdf
http://ompldr.org/vOHl4cw

Последние два *.jpg удалены, первые два остались.
---

В общем первые два файла почему-то не пускает. Может быть из-за длинного имени?

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

Пардон, еще вывод в консоли:

Срд Июн 8 15:03:07 MSD 2011
Срд Июн 8 15:03:09 MSD 2011
Срд Июн 8 15:03:11 MSD 2011
Срд Июн 8 15:03:34 MSD 2011

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

Да, дело было в длине имени файла. Сделал так:

for file in $(find *.pdf); do date && pdftk $file cat 1 output p1.pdf && convert -resize 150 p1.pdf $file.jpg && cp $file.jpg file.jpg && echo $file >> file.txt && ./upload.sh file.jpg 2>/dev/null 1>>file.txt && rm -f p1.pdf && rm -f $file.jpg && rm -f file.jpg && sleep 20; done


Все отрабатывает на ура. Освобожусь - попробую для djvu.

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

Можно пропустить cp $file.jpg file.jpg, если сразу написать convert ... file.jpg.

В rm можно писать несколько файлов: rm -f file.jpg p1.pdf

Делать for file in $(find *.pdf); не стоит: на именах с пробелами будет «облом». Можно использовать find -print0, а выхлоп парсить xargs'ом.

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

>Можно пропустить cp $file.jpg file.jpg, если сразу написать convert ... file.jpg.

Угу, спасибо.

В rm можно писать несколько файлов: rm -f file.jpg p1.pdf


Еще раз спасибо.

Делать for file in $(find *.pdf); не стоит: на именах с пробелами будет «облом».


Имен с пробелами не будет - файлы получены через FTP.

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