python - 使用Python docx在Word中创建拼音指南/'Ruby text'?

标签 python 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')

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

光栄こうえい

我尝试使用 ruby关于paragraphp.text ,删除 = True但我不断收到错误消息 'X object has no attribute 'ruby'

有人可以告诉我如何实现这一点吗?

最佳答案

<xsd:element name="ruby" ...您提到的摘录来自运行的 XML 架构类型。这意味着 CT_Ruby 类型的子元素可以出现在带有标签名称 <w:r> 的运行元素 ( <w:ruby> ) 上.

python-docx 中尚无对此元素的任何 API 支持,因此如果您想使用它,您需要使用低级 lxml 来操作 XML来电。您可以访问 run._r 上的 run 元素。如果您搜索“python-docx 解决方法函数”以及“python-pptx 解决方法函数”,您会发现一些这样做来扩展功能的示例。

关于python - 使用Python docx在Word中创建拼音指南/'Ruby text'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56685462/

相关文章:

python - 从数据类继承而不指定子类'__init__中的所有内容?

python - 对于每 x 个文件;创建新目录并 move 文件——使用 Python

python - 如何将页面方向更改为横向?

python - 通过标题将 docx 拆分为 Python 中的单独文件

Python - 循环输入

python - 高速公路,离开 onMessage block

python - ModuleNotFoundError : No module named 'fasttext'

python - 使用 python-docx 检索具有文档结构的文档内容

python-3.x - 从 csv 文件向 python-docx 添加表的速度非常慢