python-docx 仅更改页眉左边距

python-docx Change header left margin only

我正在使用 python-docx 库将图像添加到 .docx 文件的页眉和页脚。

默认情况下,页眉-页脚和页面都有左边距。

如果我使用 section.left_margin = 0,为了将 Header-Footer 的左边距更改为 0,这会将整个页面的边距设置为 0。但我只想将 Header-Footer 的左边距更改为0.

所以:如何使用 python-docx 或任何其他库仅更改页眉和页脚的左边距。

当前文档图像 - 如果我只是将图像添加到页眉和页脚,其宽度与 section 的宽度相同:

Document Image if I also section.left_margin = 0:

我真正想要的是:

正如 Cindy 在她的评论中提到的:您无法更改 header 页边距,因为页边距是 部分的属性 因此适用于 headers 和 body。您可以做的是更改段落缩进,这里至少有两种方法。

  1. 将左缩进更改为负值:

    from docx.shared import Inches
    
    header = section.header
    paragraph = header.paragraphs[0]
    paragraph.paragraph_format.left_indent = -Inches(1.0)
    
  2. 更改右缩进使得 right_indent + right_margin = left_margin:

    paragraph.paragraph_format.right_indent = Inches(0.5)
    

请注意,此缩进必须应用到您希望以此方式对齐的 header 中的所有段落;缩进是 paragraph-by-paragraph.