Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

1 Декабрь 2020, 07:57 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Как получить содержимое верхнего и нижнего колонтитулов  (Прочитано 675 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Борис_С
Форумчанин
***
Offline Offline

Сообщений: 135


« Стартовое сообщение: 30 Октябрь 2020, 15:49 »

Всем доброго дня!
Нужно получить содержимое верхнего и нижнего колонтитулов.
Буду благодарен за любую помощь.
Записан
sokol92
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 229


WWW
« Ответ #1: 30 Октябрь 2020, 17:04 »

Алгоритм действий для Calc:
1. Получить имя стиля печати листа документа Calc Spreadsheet.PageStyle
2. Получить объект, описывающий стиль: книга Питоньяка, раздел 13.12
3. Приступить к изучению сервиса TablePageStyle. Там написано и про Headers.
Записан

Владимир.
Борис_С
Форумчанин
***
Offline Offline

Сообщений: 135


« Ответ #2: 30 Октябрь 2020, 18:27 »

А для Writer?
Записан
sokol92
Форумчанин
***
Offline Offline

Пол: Мужской
Сообщений: 229


WWW
« Ответ #3: 1 Ноябрь 2020, 17:35 »

Sub PrintPageInformation в книге Питоньяка. Схема:

Код:
s = oViewCursor.PageStyleName
oStyle = ThisComponent.StyleFamilies.getByName("PageStyles").getByName(s)
Объект oStyle в примере поддерживает сервис PageStyle.
« Последнее редактирование: 1 Ноябрь 2020, 17:57 от sokol92 » Записан

Владимир.
Борис_С
Форумчанин
***
Offline Offline

Сообщений: 135


« Ответ #4: 6 Ноябрь 2020, 18:20 »

Спасибо. Как получить текст колонтитулов теперь понятно.
А как получить видимый курсор для колонтитулов?
Записан
Борис_С
Форумчанин
***
Offline Offline

Сообщений: 135


« Ответ #5: 6 Ноябрь 2020, 18:38 »

Разобрался
Код:
  oVCurs = ThisComponent.CurrentController.getViewCursor()
  s = oVCurs.PageStyleName
  oStyle = ThisComponent.StyleFamilies.getByName("PageStyles").getByName(s)
  oTCurs = oStyle.HeaderText.Start   
  ThisComponent.CurrentController.select(oTCurs) 
Этот код устанавливает видимый курсор в 1-ую позицию.
Записан
Борис_С
Форумчанин
***
Offline Offline

Сообщений: 135


« Ответ #6: 9 Ноябрь 2020, 18:23 »

Можно ли как-то понять, где находится видимый курсор?
Я нашел, как определить, где находится курсор: в тексте, в верхнем колонтитуле или в нижнем колонтитуле:

Код:
oVCurs = ThisComponent.CurrentController.getViewCursor()
NamePart = oVCurs.ParaStyleName

Если NamePart = "Standart" - это текст
Если NamePart = "Header" - это верхний колонтитул
Если NamePart = "Footer" - это нижний колонтитул
Но хотелось бы узнать, в каком конкретно колонтитуле находится курсор: в колонтитуле 1-ой страницы, левой или правой страницы.
Записан
Борис_С
Форумчанин
***
Offline Offline

Сообщений: 135


« Ответ #7: 9 Ноябрь 2020, 20:45 »

Я не прав. Этот алгоритм не работает.
NamePart может быть равным ".FORMATTEXT", и тогда совсем неясно, где находится курсор.
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!