Как изменить цвет текста в ячейке таблицы Writer

Автор ost, 23 августа 2021, 06:59

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

ost

Доброго.

Из макроса на основе шаблона (.ott)создается документ Writer. Шаблон содержит "шапочную" таблицу, ячейки которой содержат абзацы, содержащие, в свою очередь, некоторый фиксированный текст и картинку (логотип). После создания из шаблона содержимое документа формируется макросом, сохраняется.
Задача получить вариант этого документа, пригодный для печати на бумажном бланке, уже содержащем в "шапочной" части необходимый текст и логотипы.
Полагаю, что самым простым вариантом будет изменить цвет шрифта "шапочной" таблицы Writer, содержащей текст, на белый.
Как это сделать?
Посоветуйте, как "погасить" логотип. Картинка вставлена в один из текстовый абзацев  внутри ячейки текстовой таблицы.
Доступ к необходимым ячейкам получить могу.
Спасибо.

mikekaganski

#1
Цитата: ost от 23 августа 2021, 06:59После создания из шаблона содержимое документа формируется макросом, сохраняется.

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

ost

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

mikekaganski

Цитата: ost от 23 августа 2021, 11:38Осталось понять, как всему тексту в ячейке текстовой таблицы присвоить атрибут "скрытый" средствами LO Basic

xTextRange.CharHidden = True
С уважением,
Михаил Каганский

ost

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

mikekaganski

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

mikekaganski

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

xTextRange.CharTransparence = 99

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

Преимущество - нет необходимости фиксировать высоту ячейки.
Доступно начиная с версии 7.0.
С уважением,
Михаил Каганский

ost

Ячейку получаю так.

oDoc = StarDesktop.LoadComponentFromUrl(sTemplNameUrl, "_blank", 0, noArgs())
oTable = oDoc.TextTables.getByName("Head")
oCell = oTable.getCellByName("A1")


mikekaganski


oEnum = oCell.createEnumeration()
while oEnum.hasMoreElements()
 oPara = oEnum.nextElement()
 oPara.CharHidden = True
wend
С уважением,
Михаил Каганский

ost

#9
Да, сделал как у вас. Работает. Спасибо.