[Plugin Request] Контентный плагин для DjVu
Select messages from
# through # FAQ
[/[Print]\]

Total Commander -> Плагины Total Commander

#1: [Plugin Request] Контентный плагин для DjVu Author: НикLocation: Москва PostPosted: Tue Jan 08, 2008 12:27
    —
Всем привет! С праздниками! Smile

Никто не видел контентный плагин для DjVu - типа показ количества страниц, факта наличия текстового слоя и иной общей информации (если это в принципе возможно).

Или может кто напишет? Rolling Eyes

Спасибо Smile

#2:  Author: НикLocation: Москва PostPosted: Sun Jul 13, 2008 12:36
    —
Может кто-то всё-таки возьмётся - есть утилита командной строки djvudump из опенсурс пакета DjVuLibre - но она парсит весь файл и показывает данные по каждой странице (цвет, разрешение сканирования, разрешение картинки, наличие текстового слоя и т.п.).

Может можно как-то на её базе сделать контентный плагин?

#3:  Author: sergiokapone PostPosted: Fri Oct 28, 2011 21:19
    —
Запрос еще актуален

#4:  Author: ask-rusLocation: Russian Federation PostPosted: Sat Oct 29, 2011 08:31
    —
Поддерживаю запрос, 64-битная приветствуется.

#5:  Author: Mailk PostPosted: Tue Nov 28, 2017 01:38
    —
Нужен и актуален.

#6:  Author: Skif_off PostPosted: Wed Nov 29, 2017 15:05
    —
Посмотрел djvudump из DjVuLibre: таки вполне годно для WinScript Advanced. Для DC запилил на Lua:
 Hidden text

Пара моментов:
- если в файле всего одна страница, то подобной строки
Code:
DIRM [ЧИСЛО]       Document directory (bundled, ЧИСЛО files ЧИСЛО pages)

не будет, т.е. достаточно три первые строки выхлопа прочитать (только stderr не надо читать Smile);
- в найденных примерах страницы с текстовым слоем или аннотацией с линками имеют в описании соответственно что-то типа
Code:
TXTz [ЧИСЛО]       Hidden text (text, etc.)
ANTz [ЧИСЛО]       Page annotation (hyperlinks, etc.)

но в исходниках (DjVuDumpHelper.cpp) есть ещё и TXTa с ANTa соотв. (не понял, что и с чем едят, на всякий случай ищу все варианты).

На взгляд не программиста, запилить полноценный плагин не кажется проблемой, попытка "облегчить" djvudump, чтобы не искала и не писала в вывод ничего кроме перечисленного, тоже выглядит возможной.

#7:  Author: FlasherLocation: Москва PostPosted: Wed Nov 29, 2017 17:18
    —
А я как-то смотрел DjVu_ActiveX_Control (Release, GetNumberOfPages, GetTypeInfo, GetTypeInfoCount), но так и не понял, как им файл цеплять.

#8:  Author: Skif_off PostPosted: Sat Dec 02, 2017 16:17
    —
Flasher
У этой штуки документация что-то как-то не ахти, у меня сложилось впечатление, что оно только для встраивания DjVu в DOC/PPT.

#9:  Author: FlasherLocation: Москва PostPosted: Sat Dec 02, 2017 18:39
    —
Skif_off
У меня тоже такая мысль была. Документация вообще ни о чём. Ориентироваться можно только по объектной модели.
Но даже, чтобы встроить в DOC, сперва нужно получить содержимое DJVU-файла. А значит, какая-то функция должна отвечать за передачу по физическому пути. .ImageURL = "file:///<путь>" ругается на кодировку.

#10:  Author: Skif_off PostPosted: Sat Dec 02, 2017 19:22
    —
Flasher
Честно говоря, не пробовал, пробежался по документации и всё, мне кажется, djvudump выглядит перспективнее и как отдельная утилита, и как основа для бинарного плага (GNU GPL v2 вроде как и без внешних зависимостей). Только не понял, файл сразу читается целиком или по частям?

#11:  Author: FlasherLocation: Москва PostPosted: Thu Jan 17, 2019 13:48
    —
Тут опять спросили.
Медленный вариант для числа страниц следующий:

Кидаем djvused.exe, libdjvulibre.dll и libjpeg.dll (msvcp100.dll и msvcr100.dll, если нет в system32) из пакета в папку %COMMANDER_PATH%\Plugins\wdx\WinScriptsAdv\Scripts\.
Туда же кидаем DjVuPagesCount.vbs:
Code:
Content = CreateObject("WScript.Shell").Run("%ComSpec% /q /c for /f %# in ('""""%COMMANDER_PATH%\" &_
"Plugins\wdx\WinScriptsAdv\Scripts\djvused.exe"" -n -e n """ & FileName & """""') do exit /b %#", 0, 1)

Для размеров первой страницы — DjVuFirstPageSize.vbs:
Code:
With CreateObject("WScript.Shell")
  .CurrentDirectory = .ExpandEnvironmentStrings("%COMMANDER_PATH%\Plugins\wdx\WinScriptsAdv\Scripts")
  Size = .Run("%ComSpec% /q /c for /f ""tokens=2,4 delims== "" %a in ('djvused" &_
  ".exe """ & FileName & """ -e ""select 1;size""') do exit /b %a%b", 0, 1)
End With
H = Fix(Len(Size)/2) : Content = Left(Size, H) : Content1 = Mid(Size, H + 1)

В options.ini пишем:
Quote:
[Script]
ActiveScripts=...
|DjVuPages|DjVuPageSize

[DjVuPages]
Script=DjVuPagesCount.vbs
content=Число страниц
extensions=djvu
FoldersPaths=0

[DjVuPageSize]
Script=DjVuFirstPageSize.vbs
content=Ширина
content1=Высота
extensions=djvu
FoldersPaths=0

Выполняем cm_UnloadPlugins или перезапускаем ТС. Пользуемся новыми колонками из WinScriptsAdv.


Last edited by Flasher on Sat Jan 19, 2019 14:12; edited 3 times in total



Total Commander -> Плагины Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Page 1 of 1

Powered by phpBB © 2001, 2005 phpBB Group