Страница 1 из 1
Командная строка и DjVuLibre
Добавлено: Вт июн 01, 2010 03:20
hawk777
Привет всем форумчанам. Т.к. я впервые начал пользоваться командной строкой, то возник такой вопрос. Стало необходимо получить превьюшки всех djvu файлов в одной папке. Для данной задачи нашел и скачал DjVuLibre в котором имеется утилита
djvuextract.exe разбивающая djvu файл (по крайней мере должна). запускаю из командной строки с различными параметрами, но толку ноль.
Код: Выделить всё
Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.
C:\Documents and Settings\Администратор>djvuextract
Extracts components of a DjVu file
Usage:
djvuextract <djvufile> [-page=<num>] {...<chunkid>=<file>...}
C:\Documents and Settings\Администратор>djvuextract c:\1.djvu
Extracts components of a DjVu file
Usage:
djvuextract <djvufile> [-page=<num>] {...<chunkid>=<file>...}
C:\Documents and Settings\Администратор>djvuextract <c:\1.djvu> [-page=10]
Extracts components of a DjVu file
Usage:
djvuextract <djvufile> [-page=<num>] {...<chunkid>=<file>...}
C:\Documents and Settings\Администратор>djvuextract <c:\1.djvu> [-page=10]
Все время ругается на
djvuextract <djvufile> [-page=<num>] {...<chunkid>=<file>...}. теперь вопрос, нужны ли все эти фигурные, квадратные скобки или они необходимы только чтобы выделить парамеры?
ЗЫ. Понимаю что вопрос нубский но прошу помощи, сам не справляюсь.
Добавлено: Вт июн 01, 2010 10:14
MVV
Угловые скобки не нужны вообще - они просто обозначают параметр с именем (то есть, что вместо
<djvufile> нужно подставить имя файла, вместо
<num> - номер страницы, вместо
<chunkid> - идентификатор блока и т.п.). Квадратные обозначают, что параметр опциональный, и тоже не нужны. Если в квадратных или фигурных скобках перечислено несколько параметров, разделенных символом |, это означает, что нужен один из указанных параметров.
Советую поискать примеры использования этой (и других) утилит проекта DjVuLibre, ими довольно сложно пользоваться, руководствуясь только документацией. Кстати, возможно, проще в данном случае будет использовать
djvused.
Добавлено: Вт июн 01, 2010 12:22
hawk777
Пишу
djvused -e -set-thumbnails c:\1.djvu и получаю ошибку
Код: Выделить всё
Microsoft Windows XP [Версия 5.1.2600]
(С) Корпорация Майкрософт, 1985-2001.
C:\Documents and Settings\Администратор>djvused -e -set-thumbnails c:\1.djvu
*** unrecognized command
*** (..\..\..\tools\djvused.cpp:346)
Добавлено: Вт июн 01, 2010 13:29
MVV
А ты примеры использования команды "set-thumbnails" хоть смотрел? Ты ее вообще неправильно вызываешь.
djvused myfile.djvu -e 'set-thumbnails 64' -s
Такая команда по идее должна сгенерировать превьюшки для всехс страниц файла myfile.djvu (при этом она их внедряет внутрь djvu-файла).
Добавлено: Вт июн 01, 2010 18:00
hawk777
MVV
Все таки мне кажется что djvused не справится с поставленной задачей (получить первую страницу djvu файла в jpg). Из-за этого наверно надо копать в сторону djvuextract. Пример у них описан на сайте:
djvuextract [-page=pagenum] djvufile [chkid=filename]
Мне не понятен только что это за блок
[chkid=filename] и за что он отвечает. И что еще интересно если вбить в команд строку djvuextract то пример там отличается от того что на сайте
C:\Documents and Settings\Администратор>djvuextract
Extracts components of a DjVu file
Usage:
djvuextract <djvufile> [-page=<num>] {...<chunkid>=<file>...}
Добавлено: Вт июн 01, 2010 21:16
MVV
И что еще интересно если вбить в команд строку djvuextract то пример там отличается от того что на сайте Цитата:
На сайте вообще нет примера использования, только синтаксис. Но так как на сайте можно использовать форматирование, там обошлись без угловых скобок. Остальное идентично - за исключением порядка следования параметров - значит, для djvuextract параметры можно задавать как до, так и после имени djvu-файла.
Посмотрел я, похоже, djvuextract тоже не сможет извлечь в стандартный графический формат - судя по всему, она может только извлекать бинарные данные блоков (изображение страницы содержит блок с именем Sjbz - вообще, названия блоков можешь посмотреть в WinDjView, если откроешь инфо страницы):
Извлекать в картинку судя по всему может только ddjvu, основные форматы - pbm, pgm, ppm, pnm, tif (bmp не поддерживается). Команда для извлечения страницы (задашь маленький размер, получишь превьюшку):
Код: Выделить всё
ddjvu -format=tif -page=1 -size=128x128 mydjvu.djvu f:\mydjvu_001.tif
В общем, либо выполняешь команду для каждой страницы (для всех сразу нельзя), либо разбиваешь документ на страницы и потом выполняешь эту же команду для каждого файла с одной страницей.
Есть еще вариант - поковырять исходники и написать утилиту, делающую все сразу.

Но по своему опыту знаю, что ковырять эти исходники придется долго и нудно.
Добавлено: Вт июн 01, 2010 22:21
hawk777
MVV
Вот спасибо, выручили

Мне и нужно извлекать только первую страницу только для множества файлов. Задействую скриптик на php и все будет как нужно

Добавлено: Вт июн 01, 2010 23:19
MVV
А не проще батник?
Код: Выделить всё
@echo off
if -%1==- for %%f in (*.djvu) do call %0 %%f
if not -%1==- "X:\Путь\ddjvu.exe" -format=tif -page=1 -size=128x128 %1 "%~dpn1_thumb.tif"
(в текущей папке для всех .djvu создает превьюшки с тем же именем и припиской "_thumb" - просто создаешь кнопку на панели инструментов ТК с пустым полем рабочей папки, и она будет работать для папки в активной панели)
Добавлено: Ср июн 02, 2010 00:42
hawk777
Уже сделал на php, но решил проверить ваш вариант.

К сожалению не работает
Добавлено: Ср июн 02, 2010 01:23
Вахмурка
2
hawk777
Кнопки удобно выкладывать через буфер. Наводим крысу на кнопку (button), жмем правую кнопку крысы и Copy. Потом в форме для ответа на форуме выполняем вставку из буфера. Получится текст, начинающийся с
Тогда любой может обратным способом поместить эту кнопку себе на панель и изучить ее. Скриншот в подобных случаях излишен.
Добавлено: Ср июн 02, 2010 01:40
Tol!k
hawk777
Скорее всего, проблема в не пустом пути запуска
Добавлено: Ср июн 02, 2010 08:09
hawk777
Код: Выделить всё
TOTALCMD#BAR#DATA
"C:\Program Files\Total Commander\Utils\WHS\djvu.bat"
C:\Program Files\Total Commander\Totalcmd.exe,3
djvu
C:\Program Files\Total Commander\Utils\WHS\
-1
Tol!k
очищал путь запуска, не помогает
Добавлено: Ср июн 02, 2010 09:34
MVV
У меня все прекрасно работало.
Путь запуска
обязательно должен быть пустым, а
не как в твоей кнопке. Иначе файл будет запущен из совсем другой директории, в которой будет пытаться найти *.djvu - из прописанной в кнопке.
Код: Выделить всё
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\WHS\djvu.bat
%COMMANDER_PATH%\Totalcmd.exe,3
Создать эскизы для djvu
-1
Путь к ddjvu.exe в бат-файле прописал верно?
Добавлено: Ср июн 02, 2010 10:10
hawk777
MVV
Да, конечно. Но мне в принципе уже не нужно, на пхп сделал. А за помощь спасибо
