插入和附加文档
有时需要将若干文件合并成一份文件。 你可以手动操作,也可以使用 Aspose.Words 插入或附加特性。
插入操作允许您将先前创建的文档内容插入到新的或现有的文档中。
依次,附件特性允许您仅在另一个文档的末尾添加一个文档。
本条解释如何以不同的方式将一个文档插入或附加到另一个文档中,并描述您在插入或附加文档时可以应用的共同属性。
插入文档
如上所述, Aspose.Words 文档以节点树表示,将一个文档插入到另一个文档的操作是复制从第一个文档树到第二个文档树的节点。
您可以以不同的方式在各种位置插入文档。 例如,可以通过替换操作,合并操作期间的合并字段,或者通过书签插入文档.
你也可以使用这个 InsertDocument 或 InsertDocumentInline 方法,类似于在 Microsoft Word, 将整个文档插入当前光标位置,而无需任何先前的导入。
以下代码示例显示如何使用 InsertDocument 方法:
以下代码示例显示如何使用 InsertDocumentInline 方法:
以下小节描述您可以将一个文档插入到另一个文档的选项。
查找和替换操作时插入文档
您可以在进行查找和替换操作时插入文档。 例如,文件可以包含带有文本[INTRODUCTION]和[CONSLUSION]的段落. 但是,在最后文件中,你需要用从另一个外部文件中获得的内容来取代这些段落。 为此,您需要为替换事件创建一个处理器 。
以下代码示例显示如何为替换事件创建处理器,以便在插入过程中稍后使用:
以下代码示例显示在查找和替换操作时如何将一个文档的内容插入到另一个文档中:
插入文档期间 Mail Merge 行动
您可以在合并字段中插入文档 mail merge 操作。 例如,a mail merge 模板可以包含像[摘要]这样的合并字段. 但在最终文档中,您需要将从另一个外部文档获取的内容插入到此合并字段中. 为此,您需要为合并事件创建一个处理器 。
以下代码示例显示如何为合并事件创建处理器,以便在插入过程中稍后使用:
以下代码示例显示如何使用创建的处理器将文档插入合并字段:
在书签处插入文档
您可以将文本文件导入文档,然后在文档中定义的书签之后插入。 要做到这一点,请在要插入文档的地方创建一个书签段落。
以下编码示例显示如何将一个文档的内容插入到另一个文档的书签中:
附加文档
您可能有一个需要从文档中添加页面到现有文档末尾的用途。 要做到这一点,你只需要打电话给 AppendDocument 将文档添加到另一个文档末尾的方法。
以下代码示例显示如何将文档附加到另一个文档的结尾:
手动导入和插入节点
Aspose.Words 允许您自动插入和附加文档,而无需任何先前的导入要求。 然而,如果需要插入或附加文档中的特定节点,例如一节或段落,那么首先需要手动导入此节点.
当需要插入或附加一节或段落到另一节或段落时,您基本上需要使用 ImportNode 方法。 导入节点后,需要使用 InsertAfter 在引用节点之后/之前插入新节点的方法。 这使得您可以通过从文档中导入节点并在给定位置插入来自定义插入过程.
你也可以使用这个 AppendChild 方法,在子节点列表的末尾添加一个新的指定节点,例如,如果您想要在段落级别而不是在节级附加内容。
下面的代码示例显示如何使用该代码手动导入节点,并在特定节点之后插入。 InsertAfter 方法:
内容逐节导入到目的文档部分,这意味着在导入时会保存页面设置和页眉或页脚等设置. 还可以注意到,在插入或附加文档以指定两个文档如何合并时,可以定义格式设置。
插入和附加文档的常见属性
两者 InsertDocument 和 AppendDocument 接受的方法 ImportFormatMode 和 ImportFormatOptions 作为输入参数。 那个 ImportFormatMode 允许您通过选择不同的格式模式,例如: UseDestinationStyles, KeepSourceFormatting, 和 KeepDifferentStyles。 。 。 。 那个 ImportFormatOptions 允许您选择不同的导入选项, 如 IgnoreHeaderFooter, IgnoreTextBoxes, KeepSourceNumbering, MergePastedLists, 和 SmartStyleBehavior。 。 。 。
Aspose.Words 允许您在插入或附加操作中将两个文档加在一起时,通过使用 Section 和 PageSetup 属性。 那个 PageSetup 属性包含诸如 SectionStart, RestartPageNumbering, PageStartingNumber, Orientation, 还有其他人。 最常见的用例是设置 SectionStart 属性以定义添加的内容是否将出现在同一个页面上或拆分为一个新的页。
以下代码示例显示如何将一个文档附加到另一个文档中,同时避免将内容分成两页: