Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 22, 2024 16:03:03

S-vet_a
Зарегистрирован: 2024-01-22
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Odfpy_Получить стиль текста из файла

Доброго времени суток!

Сразу скажу, Python знаю плохо, использую от случая к случаю.

В файле формата .odt нужно заменить некоторый текст, при этом сохранив его шрифт, цвет и размер.

Текст заменить у меня получилось, но сохранить его стиль - нет.

 from odf.opendocument import load
from odf import text, teletype
import regex as re
strindex = '[i]'
doc = load("<мой_файл>.odt")#.spreadsheet
for element in doc.getElementsByType(text.P):
    extracted_text = teletype.extractText(element)
    print(extracted_text)
    match = re.search(r'[a-zA-Z]+(\.|:)( )*[a-zA-Z0-9]+', extracted_text)
    if extracted_text.find('\\') != -1 and match is not None:
        var = re.search(r'[a-zA-z]+',match[0])
        var2 = re.search(r'(\.|:)( )*[a-zA-Z0-9]+', match[0])
        newex = '{d.queries.'+var[0].upper()+strindex+var2[0].lower()+'}'
        new_element = text.P()
        new_element.setAttribute('stylename', element.getAttribute('stylename'))
        new_element.addText(newex)
        element.parentNode.insertBefore(new_element, element)
        element.parentNode.removeChild(element)

Буду очень благодарна за помощь!

Офлайн

#2 Янв. 24, 2024 21:51:56

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Odfpy_Получить стиль текста из файла

не вижу проблем просто
В файле формата .odt замените некоторый текст, при этом сохранив его шрифт, цвет и размер.



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Янв. 25, 2024 02:19:43

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9844
Репутация: +  853  -
Профиль   Отправить e-mail  

Odfpy_Получить стиль текста из файла

ZerG
В файле формата .odt замените некоторый текст
Напрямую распаковать, просто заменить текст и запаковать обратно не прокатит. Оно говорит, что документ повреждён. Там не так просто всё.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version