Shihad 11.09.2010 13:07
Скрипты — Автоматизация создания djvu-файлов.
Постепенно учусь работать в командной строке. Написал скриптик, который пригодится людям, решившим оцифровать библиотеку. Благодарю philosoft и xT за помощь в исправлении ошибок и улучшении скрипта.Основано на уроке с http://debiania.blogspot.com/2010/06/djvu-linux.html
xT 11.09.2010 13:13 #
+ 4 -
Благодарю за подробное, аргументированное разъяснение. Но может, Вы будете чуть многословней?
В смысле 12 и 13?
Так сделать?
for file in *.tif ; do anytopnm $file | ppmtopgm > ${file%tif}pgm; cpaldjvu -dpi 300 -colors 5 ${file%tif}pgm ${file%pgm}djvu; done ;
Так сделать?
Отправилось раньше времени.
2. хардкод путей не есть хорошо
3. про два цикла уже сказал xT
4. шаманство с путями
5. файлы с пробелами в имени не обрабатываются
6. оформление
2. хардкод путей не есть хорошо
3. про два цикла уже сказал xT
4. шаманство с путями
5. файлы с пробелами в имени не обрабатываются
6. оформление
Я не программист. Я научный сотрудник, которому надо оцифровать около четырех-пяти сотен статей и в дальнейшем повторять это действие. :)
Так что принимаю советы.
Вместо двух циклов, как я понимаю, нужно сделать так.
Что поставить вместо хардкод-путей и как вместо шаманского обрезания пути d=${PWD%/out} ;
d=${d#/home/arkady/Scans/} ; сделать что-то нормальное - я не знаю.
Так что принимаю советы.
Вместо двух циклов, как я понимаю, нужно сделать так.
for file in *.tif ; do anytopnm $file | ppmtopgm > ${file%tif}pgm; cpaldjvu -dpi 300 -colors 5 ${file%tif}pgm ${file%pgm}djvu; done ;
Что поставить вместо хардкод-путей и как вместо шаманского обрезания пути d=${PWD%/out} ;
d=${d#/home/arkady/Scans/} ; сделать что-то нормальное - я не знаю.
Ок. Но не в соответствии с предыдущей нумерацией.
1.Файлы с пробелами в имени
Берём переменную в кавычки. В случае цикла приведённого в каменте "$file"
2. Хардкод путей
Избавляемся:
3. Насчёт шаманства
Ну раз вы используете cd ololo
и если я правильно понял, то можно будет использовать "$dir.djvu" для выходного файла.
4. Оформление
Раз этот скрипт выкладываете на всеобщее обозрение, оформите его, пожалуйста красиво. (как в п.2, например)
5. P.S
Поправьте скрипт в посте, нужно: #!/bin/bash (восклицательный знак после «решётки»)
1.Файлы с пробелами в имени
Берём переменную в кавычки. В случае цикла приведённого в каменте "$file"
2. Хардкод путей
Избавляемся:
1 |
|
3. Насчёт шаманства
Ну раз вы используете cd ololo
и если я правильно понял, то можно будет использовать "$dir.djvu" для выходного файла.
4. Оформление
Раз этот скрипт выкладываете на всеобщее обозрение, оформите его, пожалуйста красиво. (как в п.2, например)
5. P.S
Поправьте скрипт в посте, нужно: #!/bin/bash (восклицательный знак после «решётки»)
Ага. Сейчас подготовлю еще пачку файлов и опробую на них ваши советы.
Спасибо.
Спасибо.
может кто знает как работает djvuextract?
ввожу djvuextract Уоррен_алгоритм\ трюки\ для\ прог.djvu
получается:
DJVUEXTRACT --- DjVuLibre-3.5.22
Extracts components of a DjVu file
Usage:
djvuextract <-page=> {...=...}
ввожу djvuextract Уоррен_алгоритм\ трюки\ для\ прог.djvu
получается:
DJVUEXTRACT --- DjVuLibre-3.5.22
Extracts components of a DjVu file
Usage:
djvuextract <-page=> {...=...}
вроде djvuextract на чанки разбирает выбранные страницы, т.е. на куски(фон, подклеенные картинки), если таковые имеются.
Если Вам надо просто разобрать djvu по страницам, то проще это сделать с помощью djvmcvt (перегнать исходный файл в indirect формат). Если надо вытащить страницы и сохранить в какой-нибудь другой графический формат, то вроде это делает ddjvu(читайте ман).
мог где-нибудь ошибиться: давно не связывался с djvu.
Если Вам надо просто разобрать djvu по страницам, то проще это сделать с помощью djvmcvt (перегнать исходный файл в indirect формат). Если надо вытащить страницы и сохранить в какой-нибудь другой графический формат, то вроде это делает ddjvu(читайте ман).
мог где-нибудь ошибиться: давно не связывался с djvu.