Перенос номера активной страницы в заголовок окна

Автор JohnDease, 7 апреля 2020, 05:17

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

JohnDease

Здравствуйте. Имеется ли настройка, позволяющая номер страницы, видимый в левом нижнем углу — перенести куда-нибудь в заголовок окна, либо отобразить в каком-нибудь контроле? Дело в том, что есть необходимость считывать номер активной страницы через сторонний скрипт, а поскольку в расположении по умолчанию нет контролов для возможности считывания, нужно другое место, откуда номер страницы удастся программно получать.

Конечная цель этого в том, что при распознавании документа непосредственно в ФайнРидере, в документе содержится множество однотипных ошибок распознавания, которые при простом поиске нельзя находить и автоматически исправлять. Поэтому возник вариант сохранить документ из ФайнРидера как текст *.odt и править его в LibreOffice, где поддержка регулярных выражений есть. При этом конечно отсутствует возможность видеть изображение страницы — тот оригинал, с которого она распознана. Поэтому планируется создание скрипта, который циклически получал бы номер активной страницы открытого в LibreOffice документа и выводил бы в своём окне соответствующее этой странице изображение, которые будут в разрозненном (в виде картинок) виде лежать отдельно.

bigor

#1
Вы уверены, что № страницы скана будет соответствовать, № страницы текста? Или будут принудительные разрывы страниц устанавливаются
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

JohnDease

Я проверял, там уже после сохранения все соответствует. Там в коде блоками все размечено.

bigor

Как вариант
открываете Text1 ходите по страницам жмете Ctrl+Shift+H

пути настроены на d:\test\ScanText\
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

JohnDease

Я так понимаю, изображение выводится в новом окне?

bigor

Да, но можете вместо draw, открывать картинки в другом приложении.
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

JohnDease

Спасибо, интересно. А можно сделать, чтобы макрос при обращении к странице, сразу же прописывал в определенную ветку реестра номер активной страницы (чтобы с другой программой можно было этот номер считывать и соответственно менять картинки)?

bigor

Можно, но только  запустив через shell regedit, поэтому проще через тот же shell запустить сразу программу для смены картинок с параметром номер страницы
Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

JohnDease

Я тут погуглил и не очень понял, как запускать через shell regedit, не могли бы Вы подсказать? Для начала хотелось бы попробовать вариант с сохранением страницы, чтобы иметь представление

bigor

С regedit  сейчас не получится, в линуксе сижу, но как-то так, только вместо калькулятора прописываете путь к regedit вместо parametr файл экспортируемый в реестр.
Shell("C:\Prog%20Files\calc.exe parametr", 2)

ну и кусочек из Питоньяка

ЦитироватьЕдинственным необходимым аргументом является первый; остальные являются
необязательными. Первый аргумент — полное имя пути внешнего приложения. Путь к
приложению может быть в URL нотации, но не обязательно. Оператор Shell вызывает
проблемы, если путь или имя приложения содержат пробелы. Вы можете решить эту
проблему тем же самым методом, которым решает ее ваш Web-браузер: замените каждый
пробел на "%20". Значение ASCII пробела — 32, то есть 20 в шестнадцатеричном виде. Этот
метод также может использоваться для замены других символов, если они являются
причиной Ваших проблем.
Shell("file:///C|/Andy/My%20Documents/oo/tmp/h.bat",2)'URL нотация использует /
Shell("C:\Andy\My%20Documents\oo\tmp\h.bat",2) 'Windows нотация использует \
Второй (необязательный) аргумент указывает стиль окна запускаемого приложения. Таблица
62 перечисляет действительные значения для аргумента стиля окна Shell.
Таблица 62. Стиль Окна для оператора Shell.
Стиль
Описание
0
Фокус находится в скрытом окне программы.
1
Фокус находится в окне программы стандартного размера.
2
Фокус находится в минимизированном окне программы.
3
Фокус находится в максимизированном окне программы.
4
Стандартный размер окна программы, без фокуса.
6
Минимизированное окно программы, но фокус остается на активном окне.
10
Полноэкранное отображение.

Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

JohnDease

#10
Цитата: Bigor от  7 апреля 2020, 22:18файл экспортируемый в реестр
А что означает "файл экспортируемый в реестр"? Это REG-файл — видимо, создающий тестовую ветку для вставки в нее номеров страниц? Соответственно, цифра 2 — это номер страницы?

JohnDease

А если не в реестр, а в какой-нибудь INI-файл получится вставлять номер страницы из макроса? Хотя в этом случае он будет наверно дописывать в него

JohnDease

Цифра 2 — это особенности по фокусу, понял

bigor

Цитата: JohnDease от  7 апреля 2020, 22:33Это REG-файл — видимо, создающий тестовую ветку для вставки в нее номеров страниц?
да, файл создающий ветку с номером страницы. Его придется создавать/корректировать в макросе, без пробы не скажу как.
Цитата: JohnDease от  7 апреля 2020, 22:33цифра 2 — это номер страницы?
нет. это второй параметр
Цитировать2
Фокус находится в минимизированном окне программы.

Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут

bigor

#14
В ini сохранить можно примерно так:

FileName = ConvertToURL("d:\test\ScanText\conf.ini")
Kill(FileName) 'Удаляем старый файл
n = FreeFile() 'Следующий свободный номер файла
Open FileName For Output Access Read Write As #n 'Открываем для чтения/записи
Write #n, oViewCursor.getPage()
Close #n

Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут