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

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

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

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

Сообщений: 229


« Стартовое сообщение: 23 Август 2021, 06:59 »

Доброго.

Из макроса на основе шаблона (.ott)создается документ Writer. Шаблон содержит "шапочную" таблицу, ячейки которой содержат абзацы, содержащие, в свою очередь, некоторый фиксированный текст и картинку (логотип). После создания из шаблона содержимое документа формируется макросом, сохраняется.
Задача получить вариант этого документа, пригодный для печати на бумажном бланке, уже содержащем в "шапочной" части необходимый текст и логотипы.
Полагаю, что самым простым вариантом будет изменить цвет шрифта "шапочной" таблицы Writer, содержащей текст, на белый.
Как это сделать?
Посоветуйте, как "погасить" логотип. Картинка вставлена в один из текстовый абзацев  внутри ячейки текстовой таблицы.
Доступ к необходимым ячейкам получить могу.
Спасибо.
« Последнее редактирование: 23 Август 2021, 07:30 от ost » Записан
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 396


« Ответ #1: 23 Август 2021, 10:29 »

После создания из шаблона содержимое документа формируется макросом, сохраняется.

Непонятно, зачем тогда такие сложности.
Вариант 1: нет вообще никакого шапочного текста. Есть только отступ нужного размера у первого абзаца, формируемый в шаблоне или макросом.
Вариант 2: внутри таблицы всё содержимое отформатировано невидимым текстом (Format|Character|Font Effects|Hidden), и если нужно это видеть, то настроен показ скрытого текста (Options|Writer|Formatting Aids|Display Formatting|Hidden Characters). При этом, чтобы таблица автоматически не сжималась при скрытии текста, нужно выставить высоту ячеек фиксированной. Скрытый текст скрывает и объекты, привязанные к нему.
Вариант 3: скрыть всё при формировании применением того же атрибута скрытого текста.
Вариант 4: отключить печать графического объекта (Properties|Options|[ ]Print)
« Последнее редактирование: 23 Август 2021, 10:33 от mikekaganski » Записан

С уважением,
Михаил Каганский
ost
Форумчанин
***
Offline Offline

Сообщений: 229


« Ответ #2: 23 Август 2021, 11:38 »

Спасибо. Идея со скрытым текстом в сочетании с фиксированной высотой ячеек таблицы, похоже, то, что надо.
Осталось понять, как всему тексту в ячейке текстовой таблицы присвоить атрибут "скрытый" средствами LO Basic
Записан
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 396


« Ответ #3: 23 Август 2021, 11:47 »

Осталось понять, как всему тексту в ячейке текстовой таблицы присвоить атрибут "скрытый" средствами LO Basic

Код:
xTextRange.CharHidden = True
Записан

С уважением,
Михаил Каганский
ost
Форумчанин
***
Offline Offline

Сообщений: 229


« Ответ #4: 23 Август 2021, 11:50 »

Получить ячейку могу, но вот диапазон в ячейке - нет. Как? Или пните, пож., куда-нибудь в нужном направлении.
Записан
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 396


« Ответ #5: 23 Август 2021, 11:52 »

У ячейки должен быть метод getText (но вопрос - как именно Вы получаете ячейку: Вы этого не описали, и я могу только использовать ясновидение).
Записан

С уважением,
Михаил Каганский
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 396


« Ответ #6: 23 Август 2021, 12:01 »

Вариант 5: использовать прозрачность текста (в сочетании с отключением печати графического объекта из варианта 4).

Код:
xTextRange.CharTransparence = 99

(значение 100% почему-то не работает - см. tdf#144018).

Преимущество - нет необходимости фиксировать высоту ячейки.
Доступно начиная с версии 7.0.
« Последнее редактирование: 23 Август 2021, 12:46 от mikekaganski » Записан

С уважением,
Михаил Каганский
ost
Форумчанин
***
Offline Offline

Сообщений: 229


« Ответ #7: 23 Август 2021, 12:03 »

Ячейку получаю так.
Код:
oDoc = StarDesktop.LoadComponentFromUrl(sTemplNameUrl, "_blank", 0, noArgs())
oTable = oDoc.TextTables.getByName("Head")
oCell = oTable.getCellByName("A1")
Записан
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 396


« Ответ #8: 23 Август 2021, 12:20 »

Код:
oEnum = oCell.createEnumeration()
while oEnum.hasMoreElements()
  oPara = oEnum.nextElement()
  oPara.CharHidden = True
wend
Записан

С уважением,
Михаил Каганский
ost
Форумчанин
***
Offline Offline

Сообщений: 229


« Ответ #9: 23 Август 2021, 12:24 »

Да, сделал как у вас. Работает. Спасибо.
« Последнее редактирование: 23 Август 2021, 12:26 от ost » Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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