Python docx库文本对齐

7 投票
3 回答
27792 浏览
提问于 2025-04-18 08:32

我正在使用python的docx库来处理Word文档。但是我找不到怎么把文档中的一行文字居中对齐。我在谷歌上也没找到相关的信息。

    from docx import Document
    document = Document()
    p = document.add_paragraph('A plain paragraph having some ')
    p.add_run('bold').bold = True
    p.add_run(' and some ')
    p.add_run('italic.').italic = True

我该怎么在docx中对齐文字呢?

3 个回答

0

如果你想把标题部分对齐到文档的中间,你需要先把文档的引用存到一个变量里,像这样:

d1 = document.add_heading('PCM_Requirement Document', 0)
d1.alignment = 1

而段落的引用只适用于段落部分,不适用于标题部分。

4
p = document.add_paragraph('A plain paragraph having some ',style='BodyText', breakbefore=False, jc='left')# @param string jc: Paragraph alignment, possible values:left, center, right, both (justified), ...

想要了解更多,可以查看这个参考链接,里面有关于段落的定义和文档说明。

14

在新的 python-docx 0.7 版本中,增加了一个新功能 #51:可以设置段落的对齐方式(读/写)。现在你可以像这里这样对齐段落:http://python-docx.readthedocs.org/en/latest/dev/analysis/features/par-alignment.html

 paragraph = document.add_paragraph("This is a text")
 paragraph.alignment = 0 # for left, 1 for center, 2 right, 3 justify ....

根据评论的编辑

其实,0 代表左对齐,1 代表居中,2 代表右对齐。

根据评论的第二次编辑

你不应该直接写这些神秘的数字。应该使用 WD_ALIGN_PARAGRAPH.CENTER 来获取居中的正确值,等等。要做到这一点,你需要使用以下的导入语句:

from docx.enum.text import WD_ALIGN_PARAGRAPH 

撰写回答