doza_and
И как они должны выглядеть?
Видимо я как то не так выразился. В том odt, что я прикрепил в первом сообщении присутствуют такие модификаторы текста как: курсив, полужирный, подчеркивание. Плюс ко всему есть таблица.
Когда я открываю этот файл для чтения, тем методом что я описал, я благополучно читаю сам текст и вставляю в него некоторые string переменные, но все модификаторы при этом не читаются. Я думал, что есть вариант чтения именно odt файла в python, чтобы я мог получить и текст и его оформление. Видимо такого способоа нет.
То что вы предлагаете использовать xml это разумно. Но я выбрал немного другой путь, я свой odt экспортировал в html, вставил нужные string, записал в новый html и в браузере открываю для печати.
Изначально задумывалось на входе odt и на выходе odt, чтобы можно было редактировать во Writer и оттуда печать делать.
Впринципе вопрос решен и его можно закрыть. Приведу свой код на всякий случай, может кому пригодится.
#задаю имена исходного и генерируемого файлов
origin_file = "g3.html"
generate_file = "g4.html"
#объявляю пустой список для хранения данных ячеек таблицы ods
data_list = []
#читаю текст из исходного файла
with open(origin_file, 'r') as in_file:
hzx = in_file.read()
print(hzx)
#открываю генерируемый файл на запись
output1 = codecs.open(generate_file, "w", encoding="utf-8")
#создаю шаблон текста исходного документа
t = Template(hzx)
#получаю все имеющиеся данные в листе 'for_form' таблицы Program.ods
doc = ODSReader(u'Program.ods', clonespannedcolumns=True)
table = doc.getSheet(u'for_form')
for i in range(len(table)):
for j in range(len(table[i])):
print (table[i][j])
d = table[i][j].encode(encoding='utf-8')
data_list.append(d)
#создаю контекст-переменную из списка data_list для подстановки в шаблон вместо конструкций django
c = Context({"strs": data_list})
#рендер нового текста в генерируемый файл
output1.write(t.render(c))
output1.close()