python-docx 样式错误 'List Paragraph'
python-docx style error with 'List Paragraph'
我正在使用 python-docx 将 Word docx 文件转换为专有 XML 格式。
我在使用 bullet/enumerated 列表时遇到问题。
在许多 Word 文档中,当我用 python-docx 打开它们并查看 bullet/enumerated 列表的段落样式时,列表中的一些项目将是 'List Paragraph' 但很多他们将是 'Normal'。
假设它们都应该是 'List Paragraph',有没有办法验证这是 Word 文档还是 python-docx 包的问题?
此外,当段落样式不符合应有的样式时,有没有办法识别这些 bullets/numbers?
例如。使用 paragraph_format
?
项目符号可以至少以两种不同的方式出现在 Word 的段落中:
- 用户应用了段落样式,比如"List Paragraph"
- 用户可能使用工具栏上的项目符号按钮直接将项目符号应用于段落。
我怀疑用户倾向于陷入这两种习惯中的一种。一致地使用样式允许您仅通过修改样式来调整所有这些段落的格式。但我怀疑 98% 以上的用户都会养成 "click the bullet button" 习惯。
无论如何,找到这样一个混合包的文件并不奇怪。
遗憾的是,python-docx
目前不支持直接应用子弹,无论是应用还是检测。
如果您有能力检查段落的 XML(print(paragraph._p.xml)
是一个开始),那么您可能可以在 paragraph._p
上使用 XPath 表达式(XML 元素)来检测它是否有我认为是 <w:bu>
的元素,这表明它有一个直接应用的项目符号。检查已知直接应用项目符号的段落的 XML 应该会为您提供您要在那里寻找的内容的详细信息。
我正在使用 python-docx 将 Word docx 文件转换为专有 XML 格式。
我在使用 bullet/enumerated 列表时遇到问题。 在许多 Word 文档中,当我用 python-docx 打开它们并查看 bullet/enumerated 列表的段落样式时,列表中的一些项目将是 'List Paragraph' 但很多他们将是 'Normal'。
假设它们都应该是 'List Paragraph',有没有办法验证这是 Word 文档还是 python-docx 包的问题?
此外,当段落样式不符合应有的样式时,有没有办法识别这些 bullets/numbers?
例如。使用 paragraph_format
?
项目符号可以至少以两种不同的方式出现在 Word 的段落中:
- 用户应用了段落样式,比如"List Paragraph"
- 用户可能使用工具栏上的项目符号按钮直接将项目符号应用于段落。
我怀疑用户倾向于陷入这两种习惯中的一种。一致地使用样式允许您仅通过修改样式来调整所有这些段落的格式。但我怀疑 98% 以上的用户都会养成 "click the bullet button" 习惯。
无论如何,找到这样一个混合包的文件并不奇怪。
遗憾的是,python-docx
目前不支持直接应用子弹,无论是应用还是检测。
如果您有能力检查段落的 XML(print(paragraph._p.xml)
是一个开始),那么您可能可以在 paragraph._p
上使用 XPath 表达式(XML 元素)来检测它是否有我认为是 <w:bu>
的元素,这表明它有一个直接应用的项目符号。检查已知直接应用项目符号的段落的 XML 应该会为您提供您要在那里寻找的内容的详细信息。