Как раскрасить текст, чтобы позже поместить его в файл docx?

#python #python-2.7 #python-docx #termcolor

#python #python-2.7 #python-docx #termcolor

Вопрос:

Я хочу раскрасить текст, присутствующий в строке, и передать строку в другой файл python, чтобы поместить полученную цветную строку в файл docx. Я пытался таким образом, но это не работает.

 from termcolor import colored
from docx import Document

document = Document()
item_i="nn Comma is required in line dependent clause is in beginningnn" 
ctxt = colored(item_i, 'blue')
p=document.add_paragraph()
p.add_run(ctxt)
document.add_page_break()

document.save('demo.docx')
 

он отображается правильно в терминале, но не в файле, он показывает ошибку

 from termcolor import colored

item_i="nn Comma is required in line dependent clause is in beginningnn" 
ctxt = colored(item_i, 'blue')
print ctxt
 

В этом формате он отображается правильно. Пожалуйста, помогите мне решить эту проблему.

Комментарии:

1. Я думаю, termcolor может раскрашивать символы в терминале. И я предполагаю, что docx имеет какое-то отношение к формату Microsoft Word. Эти два не связаны. Раскраска на терминале кодируется совершенно иначе, чем раскраска символов в ms word.

2. да, но я хочу сделать то же самое с файлом

3. Вы имеете в виду файл, предназначенный для открытия в msword или для печати на терминале (черное окно консоли)

4. Я хочу распечатать это в ms Word

5. txt-файл также может работать, но docx более предпочтителен

Ответ №1:

Вы должны использовать docx форматирование текста, поскольку, как сказал Жак де Хог, termcolor это для терминала. Смотрите здесь .

 from docx.shared import RGBColor
 

Затем

 run = p.add_run(item_i)
run.font.color.rgb = RGBColor(0x00, 0x00, 0xFF)
 

Комментарии:

1. Спасибо за ваши усилия. Я тоже пробовал это, но мне нужно вернуть изменения, внесенные в строку, в другой файл, чтобы файл мог поместить строку в файл docx. Я имею в виду, что когда я возвращаю item_i или запускаю, внесенные изменения должны быть там.

2. Я новичок в python, поэтому у меня возникают подобные сомнения.

3. Не уверен, что вы имеете в виду — вам нужно прочитать строку из текстового файла и записать ее в файл docx?

4. нет, я просто хочу написать строку, в которой часть текста окрашена, и передать строку в другой файл python, который создает файл docx с переданной строкой.

5. Почему вы хотите передать его в другой файл? Вы хотите поместить эту функциональность в другой модуль?