Я написал руководство по произношению для иностранного языка. Он содержит информацию о каждом слове в списке. Я хочу использовать docx, чтобы показать руководство по произношению над исходными словами, а часть речи под словами.
Длина текста между каждым словом значительно варьируется, равно как и разница в длине между произношением, словом и частью речи, как показано ниже.
docx
заставляет меня указать ширину столбца, то есть Inches(.25)
, когда я добавляю столбец с помощью table.add_column(Inches(.25)).cells
. Я попытался поиграть с autofit
объектом из списка здесь и не смог понять, что он на самом деле делает.
Желаемый результат выглядит так:
pronunciation_1 | pronunciation_2 | pronunciation_3
---------------------------------------------------
word_1 | word_2 | word_3
---------------------------------------------------
part_of_speech_1 | part_of_speech_2|part_of_speech_3
Вот пример кода моей попытки заставить это работать. Я несколько раз пытался решить мои вопросы ниже, но код, который я написал, вылетает или выдает результаты хуже, чем это:
from docx import Document
from docx.shared import Inches
document = Document()
table = document.add_table(rows=3,cols=0)
word_1 = ['This', "th is", 'pronoun']
word_2 = ['is', ' iz', 'verb']
word_3 = ['an', 'uh n', 'indefinite article']
word_4 = ['apple.','ap-uh l', 'noun']
my_word_collection = [word_1,word_2,word_3,word_4]
for word in my_word_collection:
my_word = word[0]
pronunciation = word[1]
part_of_speech = word[2]
column_cells = table.add_column(Inches(.25)).cells
column_cells[0].text = pronunciation
column_cells[1].text = my_word
column_cells[2].text = part_of_speech
document.save('my_word_demo.docx')
Вот как выглядят результаты. Это скриншот того, как мой код отображает текст в MS Word:
Мой конкретный вопрос:
Как сделать динамическую ширину столбцов?
Я хочу, чтобы ширина столбца соответствовала самой длинной из трех точек данных для каждого слова (my_word, произношение или part_of_speech), чтобы ни один текст не нужно было переносить, а также чтобы вокруг каждого слова не было лишнего пробела , Цель состоит в том, чтобы документ был создан, и читателю / пользователю не нужно настраивать ширину ячейки, чтобы он был читабельным.
Если это поможет, Q / A здесь говорит, что ширина ячейки должна быть установлена индивидуально. Я попытался поискать в Google, как рассчитать ширину символов, но мне кажется, что есть способ справиться с этим в docx, о котором я не знаю.