【问题标题】:Trouble with layout on python docxpython docx上的布局问题
【发布时间】:2021-12-10 19:03:13
【问题描述】:

在堆栈溢出的帮助下,我构建了这段代码:

from docx import Document

names = ["names1, names2, names3, names4"]
names = ' '.join(names)
dates = ["October 25 2021"]
dates = str(dates)
client = ['client']
client = str(client)

document = Document('filename.docx')

paragraphs = document.paragraphs


paragraph = paragraphs[0].insert_paragraph_before()

paragraph.add_run("       ")
run = paragraph.add_run("To")
run.italic = True
paragraph.add_run("    " + names + "         ")
run = paragraph.add_run("Date")
run.italic = True
paragraph.add_run("  " + dates + "       ")

paragraph.add_run("                                                        ")
paragraph.add_run("Doc 1")
paragraph.add_run("                                                           ")
paragraph.add_run("                                                           ")
run = paragraph.add_run("From")
run.italic = True
paragraph.add_run("    " + names + "         ")
run = paragraph.add_run("Ref")
run.italic = True
paragraph.add_run("  " + client)
paragraphs[0].insert_paragraph_before("                                                                                     ")


document.save('new.docx')

我得到了:

但我想要这样的东西:

但我无法做到这种布局。我添加了空格等,但它根本没有遵循,所以我必须遗漏一些东西。

有什么想法吗?

【问题讨论】:

    标签: python python-3.x layout python-docx


    【解决方案1】:

    您有两种选择,一种是使用制表位,另一种是使用表格。

    您可能想在 Word UI 中进行简单的试验,看看这两个是如何完成的。那么工作就是如何在python-docx 中重新创建该过程。

    使用制表位方法(这是我的首选),您需要四个制表位。文本类似于“tab,”To”,tab,“name,name,...”,tab,“Date”,tab,“October...”。第一个制表位是右制表符,对齐"to" 的结尾可能是 .75" 或其他,然后是一个左对齐的制表位来对齐名称,右对齐是 "Date",左对齐是日期本身。

    使用表格,您只有两行,每行四个单元格,并且相应地左右对齐单元格并调整单元格宽度以适应。我不确定您是如何在我的脑海中关闭python-docx 中的单元格边框的,但我希望这是一个表格样式的选择。

    表格方法的一个优点是,一行不下的名称列表将自动换行。在选项卡方法中,如果名称运行时间过长,它只会搞砸格式。

    【讨论】:

    • 我使用了表格方法,它很简单,但在质量方面并不完全符合我的要求。但无论如何感谢scanny,一如既往你是一个有python docx的人。
    猜你喜欢
    • 2013-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-24
    • 2017-04-06
    • 2013-10-01
    • 2015-09-03
    • 1970-01-01
    相关资源
    最近更新 更多