python docx 将左右对齐在同一行

标签 python alignment docx python-docx

这是我关于SO的第一个问题,提前感谢大家的帮助。我对 python、python-docx 和一般编程还很陌生。我正在开发一个 GUI 程序(使用 PyQt)来生成 docx 格式的契约(Contract)。我已经完成了大部分工作,但这是我遇到的问题。我需要将文本左右对齐在同一行上。在单词中,我相信这是通过更改为右缩进并点击制表符,然后添加文本来完成的。但是,我不知道如何在 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 版本)?

感谢您的帮助!

最佳答案

不确定您是否仍在寻找解决方案,但是...

我也在使用 python-docx 生成契约(Contract),并遇到了同样的问题。直到right-aligned tab stop feature添加后,我的解决方法是使用自定义表格样式将该行格式化为表格。

  • 首先,打开一个文档(“custom_styles.docx”)并添加一个 1 行 2 列的表格。
  • 选择表格并添加新的表格样式(“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 中创建表格样式。

关于python docx 将左右对齐在同一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28884114/

相关文章:

python - 如何在python-MySQL中通过索引传递字典键列表?

pdf - iTextSharp - 将 word doc/docx 转换为 pdf

apache-poi - 如何使用apache poi从java中的docx中删除包含数据的表格和段落

python - 如何自动安装缺少的 python 模块?

python - 使用 model.fit 时如何将 'training' 参数传递给 tf,keras.Model

python - 访问全局变量时模块的 __setattr__ 和 __getattr__

css - 无法对齐 <div> 标签

html - 如何在 CSS 中同时垂直和水平对齐?

html - 如何水平和垂直居中元素

java - 将样式文本写入 .docx 文件