【问题标题】:Adding page numbers in header or footer using versions 0.8.8+使用 0.8.8+ 版本在页眉或页脚中添加页码
【发布时间】:2019-04-13 01:07:45
【问题描述】:

最近,python-docx 的版本0.8.8 添加了对headers and footers 的直接支持。

现在可以简单地添加页眉或页脚,如下所示:

from docx import Document
document = Document()

header = document.sections[0].header
header.add_paragraph('This is an example Header') 

footer = document.sections[0].footer
footer.add_paragraph('This is an example Footer')

在此版本之前,可以使用template approach 灵活地添加页眉和页脚。

使用模板可以非常简单地包含页码等内容。但是,新版本中页眉和页脚的实现似乎并非如此。

0.8.8 及更高版本中添加页码是否有简单的方法?

【问题讨论】:

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


    【解决方案1】:

    我相信您会发现页眉或页脚中使用的“自动”页码是一种字段。字段尚未在 python-docx 中实现,因此您需要自己解决此问题,必须从尽可能接近的位置添加所需的 XML,我希望这将是 <w:r> 元素运行。

    我的方法是使用 Word 在页眉中添加页码,然后使用 opc-diag 检查生成的 XML。这将具体确定 XML 需要去哪里。

    从那里您可以使用r = run._r 获取运行元素,然后使用lxml 调用插入您需要的XML。

    【讨论】:

    • 是否有计划在(近期)将来实施?
    • 新功能主要通过赞助添加到python-docx。这就是最近页眉和页脚到达那里的方式。所以问题变成了“是否有人想要这个功能足以支付添加它的费用?”。这种情况比您想象的要多,通常是一个将python-docx 作为依赖项的项目,只需要一个或两个功能。还没有人注册这个特定的。无预算用户的典型方法是通过直接在重点区域编写 XML 来扩展包,正如我在上面概述的那样。它需要一些分析工作,但通常可以在十几行左右完成。
    • 有趣。但是赞助功能的流程是什么? python-docx 网站上似乎没有任何关于此的信息。
    • @PearlySpencer 如果您认为您可能想要赞助某个功能,只需通过 GitHub 存储库作者简介中的电子邮件联系:github.com/scanny
    猜你喜欢
    • 2018-11-18
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 2013-10-24
    • 2010-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多