跳转到主要内容

组合.docx文档

项目描述

docxcompose 是一个用于连接/附加 Microsoft Word (.docx) 文件的 Python 库。

用法示例

将文档附加到另一个文档

from docxcompose.composer import Composer
from docx import Document
master = Document("master.docx")
composer = Composer(master)
doc1 = Document("doc1.docx")
composer.append(doc1)
composer.save("combined.docx")

docxcompose 控制台脚本

docxcompose 控制台脚本允许从命令行组合 docx 文件,例如:

$ docxcompose files/master.docx files/content.docx -o files/composed.docx

开发安装

要为开发安装 docxcompose,克隆仓库并使用带有 setuptools 的 python(例如一个新的虚拟环境),然后使用 pip 进行安装。

$ pip install -e .[tests]

可以使用 pytest 运行测试。

关于测试的说明

测试提供了一组帮助器,可以进行黑盒测试,可以比较整个文档文件。为此,应提供以下文件:

  • 一个期望输出的文件,应添加到文件夹 docs/composed_fixture 中。

  • 多个可以组合成上述文件的文件应添加到文件夹 docs 中。

现在可以按照以下方式测试期望输出:

def test_example():
    fixture = FixtureDocument("expected.docx")
    composed = ComposedDocument("master.docx", "slave1.docx", "slave2.docx")
    assert fixture == composed

如果断言失败,输出文件将被存储在文件夹 docs/composed_debug 中,文件名为固定文件名,例如本例中的 expected.docx

页眉和页脚

第一个文档被视为主要模板,其他文档的页眉和页脚将被忽略,因此合并文件中使用了第一个文档的页眉和页脚。

变更日志

1.4.0 (2022-12-14)

  • 添加了对更新多行纯文本内容控件的支持。[lgraf]

1.3.7 (2022-11-18)

  • 在更新日期字段时尊重文档语言。[njohner]

1.3.6 (2022-10-05)

  • vt2value(): 将空的 <vt:lpwstr/> 节点转换为空字符串,而不是 None。[lgraf]

1.3.5 (2022-07-08)

  • 支持缺少的样式元素。[BryceStevenWilley]

  • 正确处理具有节的文档合并时的页眉和页脚。[njohner]

1.3.4 (2021-12-20)

  • 在处理具有自定义样式编号定义的文档时避免 IndexError。[lonetwin]

1.3.3 (2021-08-12)

  • 添加对 Smart Art 的支持(修复 #23)。

  • 在 restart_first_numbering 中正确处理映射的样式。[njohner]

1.3.2 (2021-04-27)

  • 使 Doc Properties 不区分大小写。[buchi]

1.3.1 (2021-01-13)

  • 添加对字段名拆分为多个运行的支持。[njohner]

  • 添加对日期格式切换的支持。[njohner]

1.3.0 (2020-10-06)

  • 支持更新没有现有值的复杂属性。[deiferni]

1.2.0 (2020-07-13)

  • 添加将 docproperty 置为空的方法。[deiferni]

1.1.2 (2020-06-11)

  • 处理具有外部引用的嵌入式图像。[buchi]

  • 修复重新编号非可视图像和绘图属性的问题。[buchi]

1.1.1 (2020-05-04)

  • 修复非 ascii 二进制_type docproperties 的问题。[deiferni]

1.1.0 (2020-04-07)

  • 添加对更新文档页眉和页脚中的 docproperties 的支持。[deiferni]

1.0.2 (2019-09-09)

  • 如果复杂字段没有单独的节点,则不会失败。[njohner]

1.0.1 (2019-07-25)

  • 正确处理同一段落中的两个复杂字段。[njohner]

  • 正确处理文档中出现多次的 docproperty 的情况。[njohner]

  • 处理在属性名之前有额外空格或在属性名周围没有引号的前缀。[njohner]

1.0.0 (2019-06-13)

  • 将许可证从 GPL 更改为 MIT。[buchi]

  • 添加对添加、设置和删除 doc properties 的支持。[buchi]

1.0.0a17 (2019-04-25)

  • 添加获取和设置纯文本内容控件(结构化文档标记)内容的功能。[buchi]

1.0.0a16 (2019-01-15)

  • 防止在更新期间出现先前缓存的 doc property 值的残留物。[deiferni]

1.0.0a15 (2018-12-12)

  • 修复了使用非 ascii 名称更新 doc-properties 的问题。[deiferni]

  • 不要两次处理超链接引用。[deiferni]

1.0.0a14 (2018-12-04)

  • 实现了对引用部分的通用处理。其中还包括了对嵌入式 Excel 图表的支持。[buchi]

  • 处理嵌入式 SVG。[buchi]

  • 添加来自其他部分(例如脚注)的样式。[buchi]

1.0.0a13 (2018-11-05)

  • 修复了在重新启动编号时设置列表样式不正确的问题。[deiferni]

1.0.0a12 (2018-10-30)

  • 修复了为只有一个部分的附加文档设置部分类型的问题。[deiferni]

1.0.0a11 (2018-07-30)

  • 修复了处理部分类型的问题。[buchi]

  • 修复了第一个元素列表样式不同的问题。[deiferni]

  • 修复重启时间歇性编号的问题。[deiferni]

1.0.0a10 (2018-07-18)

  • 添加控制台脚本命令,用于组合两个或更多个文档。[deiferni]

1.0.0a9 (2018-05-01)

  • 修复1.0.0.a7中引入的num_ids映射错误。[buchi]

  • 当引用零编号时,不会失败。[deiferni]

1.0.0a8 (2018-04-26)

  • 仅在可用时尝试设置nsid。[deiferni]

1.0.0a7 (2018-04-20)

  • 修复WordprocessingGroups (<wpg:wpg>)中的图像处理。[buchi]

  • 修复形状组 (<v:group>)中的形状处理。[buchi]

  • 修复编号处理,避免插入多个编号属性。[buchi]

  • 修复书签重编号。[buchi]

  • 重编号绘图对象属性 (<wp:docPr>) 的id。[buchi]

1.0.0a6 (2018-02-20)

  • 不要重启项目符号编号。[buchi]

1.0.0a5 (2018-01-11)

  • 重编号书签以避免重复的id。[buchi]

  • 添加对形状的支持。[buchi]

1.0.0a4 (2017-12-27)

  • 修复使用不同语言组合文档时的样式处理。[buchi]

  • 同时添加在样式中的引用编号。[buchi]

  • 避免对同一样式具有多个 <w:abstractNum> 元素。[buchi]

  • 重新启动插入文档的第一编号 [buchi]

  • 添加对锚定图像的支持。[buchi]

  • 处理在styles.xml中未定义的引用样式id。[buchi]

  • 从段落属性中删除页眉和页脚引用。[buchi]

1.0.0a3 (2017-11-22)

  • 使删除属性字段变为可选。[buchi]

1.0.0a2 (2017-11-06)

  • 修复包含超链接的脚注的处理。[buchi]

  • 添加处理自定义文档属性的功能。属性可以被更新,包含属性的域可以被删除。当附加或插入文档时,它们的自定义文档属性将自动删除。[buchi]

1.0.0a1 (2017-09-13)

  • 初始发布 [buchi]

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定选择哪个,请了解更多有关安装包的信息。

源代码发行版

docxcompose-1.4.0.tar.gz (20.2 kB 查看哈希值)

上传时间 源代码

由以下机构支持