Используйте Python docx для создания фонетического руководства / 'Ruby text' в Word? - PullRequest
1 голос
/ 20 июня 2019

Я хочу добавить фонетические руководства к словам в MS Word. Внутри MS Word исходное слово называется «Базовый текст», а фонетическое руководство - «Рубиновый текст».

Вот что я пытаюсь создать в Word: MS Word Phonetic Guide

В документации docx есть страница, в которой говорится о контенте уровня выполнения со ссылкой на ruby: <xsd:element name="ruby" type="CT_Ruby"/>, расположенной здесь: https://python -docx.readthedocs.io / о / последний / DEV / анализ / функция / текст / вводный content.html

Я не могу понять, как получить к ним доступ в моем коде.

Вот пример одной из моих попыток:

import docx
from docx import Document
document = Document()
base_text = '光栄'
ruby_text = 'こうえい'
p = document.add_paragraph(base_text)
p.add_run(ruby_text).ruby = True
document.save('ruby.docx')

Но этот код только возвращает следующее:

光栄こうえい

Я пытался использовать ruby на paragraph и p.text, удаляя = True, но я получаю сообщение об ошибке 'X object has no attribute 'ruby'

Может кто-нибудь показать мне, как это сделать?

Спасибо!

1 Ответ

1 голос
/ 20 июня 2019

Упомянутая выдержка <xsd:element name="ruby" ... относится к типу схемы XML для прогона. Это означает, что дочерний элемент типа CT_Ruby может присутствовать в элементе выполнения (<w:r>) с именем тега <w:ruby>.

В python-docx пока нет поддержки API для этого элемента, поэтому, если вы хотите использовать его, вам нужно будет манипулировать XML с помощью низкоуровневых вызовов lxml. Вы можете получить доступ к элементу run в run._r. Если вы ищете «функцию обхода python-docx», а также, возможно, «функцию обхода python-pptx», вы найдете несколько примеров этого, чтобы расширить функциональность.

...