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

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

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

Войти
Новости: Здесь можно поблагодарить участников форума Улыбка
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Работает ли вообще ParaVertAlignment в стилях таблицы ?  (Прочитано 1658 раз)
0 Пользователей и 1 Гость смотрят эту тему.
idro
Участник
**
Offline Offline

Сообщений: 24


« Стартовое сообщение: 10 Апрель 2016, 06:54 »

Нужно вертикально выровнять текст в ячейках  таблицы . ParaVertAlignment  в стилях  вообще ни на что не влияет.

Цитата:
     Cell = oTable1.GetCellByPosition(0,0)
   sPageStyleName = Cell.Start.ParaStyleName ' получаем текущий стиль заголовка таблицы
     oStyle = oDoc.StyleFamilies.getByName("ParagraphStyles").getByName(sPageStyleName)
     oStyle.CharHeight =8 'кегль заголовка таблицы
     Cell = oTable1.GetCellByPosition(0,1) '
   sPageStyleName = Cell.Start.ParaStyleName ' получаем стиль содержания таблицы
     oStyle = oDoc.StyleFamilies.getByName("ParagraphStyles").getByName(sPageStyleName)
     oStyle.CharHeight =12 ' кегль шрифта содержания таблицы
     oStyle.ParaVertAlignment =3 ' теоретически это вертикальное выравнивание , но не работает
   oStyle.ParaAdjust = com.sun.star.style.ParagraphAdjust.CENTER ' горизонтальное выравнивание по центру содержимого страницы

Пока делаю через диспетчер, перебирая каждую  ячейку,  по по скорости вообще грустно Грустный

Цитата:
Cell = oTable1.GetCellByPosition(0,0)
CellCursor = Cell.createTextCursor()           
document   = oDoc.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:CellVertCenter", "", 0, Array())
Записан
rami
Гуру
*******
Offline Offline

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


MacBook Pro, LibreOffice и Apache OpenOffice


« Ответ #1: 10 Апрель 2016, 13:30 »

Нужно вертикально выровнять текст в ячейках  таблицы . ParaVertAlignment  в стилях  вообще ни на что не влияет.
Вертикальное выравнивание абзаца не работает и кажется никогда не работало. Вертикальное выравнивание текста в таблице производится через свойства таблицы, а не абзаца.
Пока делаю через диспетчер, перебирая каждую  ячейку,  по по скорости вообще грустно
Вместо перебора ячеек можно выделить всю таблицу и выравнять:
Код:
oVCursor=ThisComponent.CurrentController.getViewCursor()
ThisComponent.CurrentController.select(oTable1)
oVCursor.gotoEnd(True) 'Перемещение в конец текущей ячейки
oVCursor.gotoEnd(True) 'Перемещение в конец таблицы
document=oDoc.CurrentController.Frame
dispatcher=createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document,".uno:CellVertCenter","",0,Array())
Записан

idro
Участник
**
Offline Offline

Сообщений: 24


« Ответ #2: 16 Апрель 2016, 14:09 »

Я сделал через диапазон

Код:
  oRange = oTable1.getCellRangeByPosition(0,0,9,1) ' диапазон в котором надо сделать выравнивание и поменять шрифт
  oRange.CharFontName = "Arial"
  oRange.CharHeight =6 ' размер шрифта
  oDoc.CurrentController.select(oRange)
  document   = oDoc.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:CellVertCenter", "", 0, Array())  ' вертикально выравниваем по середине 
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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