使用Python docx在Word中创建语音提示/“ Ruby文本”吗?

时间:2019-06-20 11:56:31

标签: python python-3.x python-docx

我想为MS Word中的单词添加语音指导。在MS Word中,原始单词称为“基础文本”,而语音提示则称为“ Ruby文本”。

这就是我要创建的Word中的外观: MS Word Phonetic Guide

docx文档的页面讨论了运行级内容,并引用了ruby:<xsd:element name="ruby" type="CT_Ruby"/>,位于以下位置: https://python-docx.readthedocs.io/en/latest/dev/analysis/features/text/run-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')

但是此代码仅返回以下内容:

光栄こうえい

我尝试在rubyparagraph上使用p.text,删除了= True,但我不断收到错误消息'X object has no attribute 'ruby'

有人可以告诉我如何做到这一点吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您提到的CT_Ruby摘录来自运行的XML模式类型。这意味着类型<w:r>的子元素可以出现在带有标签名<w:ruby>的运行元素(python-docx)上。

lxml中对此元素尚无任何API支持,因此,如果要使用它,则需要使用低级run._r调用来操纵XML。您可以访问id: tag上的run元素。如果您同时搜索“ python-docx解决方法功能”和“ python-pptx解决方法功能”,则会发现一些扩展此功能的示例。