python docx 在同一行左右对齐
python docx align both left and right on same line
这是我关于 SO 的第一个问题,在此先感谢大家的帮助。我对 python、python-docx 和一般编程还很陌生。我正在开发一个 GUI 程序(使用 PyQt)来生成 docx 格式的合同。我有大部分工作,但这是我遇到的问题。我需要在同一行上左右对齐文本。换句话说,我相信这是通过更改为右缩进并点击制表符,然后添加文本来完成的。但是,我不知道如何在 python-docx 中执行此操作。我试过了:
paragraph = document.add_paragraph()
paragraph.add_run('SOME TEXT')
paragraph.alignment = 0
paragraph.add_run('SOME OTHER TEXT')
paragraph.alignment = 2
但这没有用。我根据文档尝试了一些其他想法,例如枚举 WD_PARAGRAPH_ALIGNMENT,但没有任何效果。
这可以在 python-docx(我使用的是 0.8.5 版)中实现吗?
感谢您的帮助!
如果您要找的是 完全对齐 的段落,这意味着它与左右两侧的边距对齐,则使用Paragraph.alignment
属性:
from docx.enum.text import WD_ALIGN_PARAGRAPH
paragraph = document.add_paragraph('A paragraph of text ..')
paragraph.alignment = WD_ALIGN_PARAGRAPH.JUSTIFY
如果您要建立右对齐制表位,python-docx
尚不支持。您可以在此处的 GitHub 问题列表中添加功能请求:https://github.com/python-openxml/python-docx/issues
一个好的问题名称应该是 "feature: tab stops"。
不确定您是否仍在寻找解决方案,但是...
我也在生成与 python-docx 的合同并遇到了同样的问题。在添加 right-aligned tab stop feature 之前,我的解决方法是使用自定义 table 样式将该行格式化为 table。
- 首先,打开一个文档('custom_styles.docx')并添加一个1行2列的table。
- Select table 并添加新的 table 样式 ('CustomTable'),其中第一列左对齐,最后一列右对齐. (我还通过将它们设置为 'none' 或将它们着色为白色来使边框不可见。)
- 删除 table 并保存文档,这将为您提供一个具有新 'CustomTable' 样式的空文档。
以下内容适用于创建看起来既左对齐又右对齐的行:
from docx import Document
document = Document('custom_styles.docx')
table = document.add_table(1, 2, style='CustomTable')
table.cell(0,0).text = 'Left Text'
table.cell(0,1).text = 'Right Text'
document.save('new_document_name.docx')
对我来说最棘手的部分是弄清楚如何在 Word 中创建 table 样式。
这是我关于 SO 的第一个问题,在此先感谢大家的帮助。我对 python、python-docx 和一般编程还很陌生。我正在开发一个 GUI 程序(使用 PyQt)来生成 docx 格式的合同。我有大部分工作,但这是我遇到的问题。我需要在同一行上左右对齐文本。换句话说,我相信这是通过更改为右缩进并点击制表符,然后添加文本来完成的。但是,我不知道如何在 python-docx 中执行此操作。我试过了:
paragraph = document.add_paragraph()
paragraph.add_run('SOME TEXT')
paragraph.alignment = 0
paragraph.add_run('SOME OTHER TEXT')
paragraph.alignment = 2
但这没有用。我根据文档尝试了一些其他想法,例如枚举 WD_PARAGRAPH_ALIGNMENT,但没有任何效果。
这可以在 python-docx(我使用的是 0.8.5 版)中实现吗?
感谢您的帮助!
如果您要找的是 完全对齐 的段落,这意味着它与左右两侧的边距对齐,则使用Paragraph.alignment
属性:
from docx.enum.text import WD_ALIGN_PARAGRAPH
paragraph = document.add_paragraph('A paragraph of text ..')
paragraph.alignment = WD_ALIGN_PARAGRAPH.JUSTIFY
如果您要建立右对齐制表位,python-docx
尚不支持。您可以在此处的 GitHub 问题列表中添加功能请求:https://github.com/python-openxml/python-docx/issues
一个好的问题名称应该是 "feature: tab stops"。
不确定您是否仍在寻找解决方案,但是...
我也在生成与 python-docx 的合同并遇到了同样的问题。在添加 right-aligned tab stop feature 之前,我的解决方法是使用自定义 table 样式将该行格式化为 table。
- 首先,打开一个文档('custom_styles.docx')并添加一个1行2列的table。
- Select table 并添加新的 table 样式 ('CustomTable'),其中第一列左对齐,最后一列右对齐. (我还通过将它们设置为 'none' 或将它们着色为白色来使边框不可见。)
- 删除 table 并保存文档,这将为您提供一个具有新 'CustomTable' 样式的空文档。
以下内容适用于创建看起来既左对齐又右对齐的行:
from docx import Document
document = Document('custom_styles.docx')
table = document.add_table(1, 2, style='CustomTable')
table.cell(0,0).text = 'Left Text'
table.cell(0,1).text = 'Right Text'
document.save('new_document_name.docx')
对我来说最棘手的部分是弄清楚如何在 Word 中创建 table 样式。