Работает ли вообще ParaVertAlignment в стилях таблицы ?

Автор idro, 10 апреля 2016, 06:54

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

idro

Нужно вертикально выровнять текст в ячейках  таблицы . 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

Цитата: idro от 10 апреля 2016, 04:54Нужно вертикально выровнять текст в ячейках  таблицы . ParaVertAlignment  в стилях  вообще ни на что не влияет.
Вертикальное выравнивание абзаца не работает и кажется никогда не работало. Вертикальное выравнивание текста в таблице производится через свойства таблицы, а не абзаца.
Цитата: idro от 10 апреля 2016, 04:54Пока делаю через диспетчер, перебирая каждую  ячейку,  по по скорости вообще грустно
Вместо перебора ячеек можно выделить всю таблицу и выравнять:
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

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

  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())  ' вертикально выравниваем по середине