Как получить содержимое верхнего и нижнего колонтитулов

Автор Борис_С, 30 октября 2020, 15:49

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

Борис_С

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

sokol92

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


sokol92

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

s = oViewCursor.PageStyleName
oStyle = ThisComponent.StyleFamilies.getByName("PageStyles").getByName(s)

Объект oStyle в примере поддерживает сервис PageStyle.
Владимир.

Борис_С

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

Борис_С

Разобрался

  oVCurs = ThisComponent.CurrentController.getViewCursor()
  s = oVCurs.PageStyleName
  oStyle = ThisComponent.StyleFamilies.getByName("PageStyles").getByName(s)
  oTCurs = oStyle.HeaderText.Start   
  ThisComponent.CurrentController.select(oTCurs) 

Этот код устанавливает видимый курсор в 1-ую позицию.

Борис_С

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


oVCurs = ThisComponent.CurrentController.getViewCursor()
NamePart = oVCurs.ParaStyleName


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

Борис_С

Я не прав. Этот алгоритм не работает.
NamePart может быть равным ".FORMATTEXT", и тогда совсем неясно, где находится курсор.