Python-docx: получить свойства шрифта документа по умолчаниюPython

Программы на Python
Ответить
Anonymous
 Python-docx: получить свойства шрифта документа по умолчанию

Сообщение Anonymous »

Я пишу программу, которая будет читать файл docx и выводить отформатированный код игры. Поэтому мне нужно собрать всю возможную информацию из документа docx, чтобы я мог эффективно разработать свою программу. Хотя читать абзацы и собирать данные было легко, я столкнулся с проблемой, когда python-docx возвращает None для свойств, которые «наследованы из иерархии стилей». При встрече с этими значениями None возникает проблема; поскольку моя программа ничего не делает с типом None, какое значение мне использовать вместо этого? Чтобы исправить это, я ищу точный способ доступа к значениям по умолчанию всего документа для всего, что связано с абзацами/шрифтами (если возможно), например: выравнивание по умолчанию, шрифт по умолчанию, размер шрифта по умолчанию, цвет шрифта по умолчанию и т. д. С учетом вышесказанного, может ли кто-нибудь дать какие-либо рекомендации о том, как мне добиться желаемого поведения (если вообще стоит этого добиваться).
Пока что мне удалось добиться желаемого поведения. размер шрифта по умолчанию (надеюсь), используя это метод:

Код: Выделить всё

def _find_default_size(self, document):
if(document != None and
document.styles != None and
document.styles.element != None):
styles_elem = document.styles.element
# print(et.tostring(styles_elem))

default_LXML = styles_elem.xpath('w:docDefaults/w:rPrDefault')
if(len(default_LXML) != 0 and
len(default_LXML[0]) != 0):

# https://github.com/python-openxml/python-docx/blob/master/src/docx/oxml/text/font.py
run = default_LXML[0][0] # Should be a type CT_RPr

if(run.sz_val):
return run.sz_val.pt

return -1
Что я изначально нашел в этом репозитории GitHub: https://github.com/pass-by-reference/do ... o_renpy.py# L249
Хотя этот метод получает размер шрифта по умолчанию, я изо всех сил пытаюсь понять, почему он это делает, и пытаюсь собрать другие вещи, такие как выравнивание абзаца по умолчанию, цвет шрифта по умолчанию и т. д. p>
Кроме того, я хотел бы добавить, что я пытался преобразовать файл docx в zip-файл, чтобы попытаться вручную найти расположение нужных значений по умолчанию, но ничего не вышло пока :(

Подробнее здесь: https://stackoverflow.com/questions/791 ... properties
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»