将 Word 文档合并在一起
Aspose.Words是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。
Aspose API支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格式和最常用的图像/多媒体格式。
页面设置是一组格式属性,存储在 Word 文档的每个部分中。Microsoft Word Automation 的 ActiveDocument.Range.PageSetup 是为文档的所有部分设置相同页面设置的“快捷方式”。Aspose.Words仅通过Section.PageSetup属性提供对各个部分的页面设置的访问,因此对页面设置的任何文档范围的更改都必须应用于所有部分。
VSTO
string mypath = "Document.docx"; Word.Application wordApp = Application; wordApp.Documents.Open(mypath); int recordCount = 2; int i = 0; for (i = 0; i <= recordCount; i++) wordApp.Selection.WholeStory(); wordApp.Selection.EndOf(); wordApp.Selection.InsertFile("DetailsList.docx"); if (i < recordCount) { wordApp.Selection.Range.InsertBreak(2); }
点击复制
上面的代码循环运行,并在当前文档的末尾插入一个文档。每个加入的文档中的内容均由分节符分隔,并且此新部分的页眉和页脚未链接,因此它们不会从上一节的页眉和页脚继续。 当迁移到Aspose.Words时,您会发现上面的任务非常容易实现。Aspose.Words 为此提供了一个特殊的 Document.AppendDocument 方法,用于将两个文档连接在一起。 此方法将源文档中的部分复制到目标文档。这消除了插入自动化所需的任何分节符的需要。
Aspose.Words
// The document that the other documents will be appended to. Document dstDoc = new Document( ); // We should call this method to clear this document of any existing content. dstDoc.RemoveAllChildren(); int recordCount = 1; for (int i = 1; i <= recordCount; i++) { // Open the document to join. Document srcDoc = new Document( "src.doc"); // Append the source document at the end of the destination document. dstDoc.AppendDocument(srcDoc, ImportFormatMode.UseDestinationStyles); Document doc2 = new Document("Section.ModifyPageSetupInAllSections.doc"); dstDoc.AppendDocument(doc2, ImportFormatMode.UseDestinationStyles); // In automation you were required to insert a new section break at this point, however in // Aspose.Words we don't need to do anything here as the appended document is imported as separate sectons already. // If this is the second document or above being appended then unlink all headers footers in // this section from the headers and footers of the previous section. if (i > 1) dstDoc.Sections[i].HeadersFooters.LinkToPrevious(false); } dstDoc.Save("updated.doc");
点击复制
请注意,您可以通过使用适当的Section对象的PageSetup.SectionStart属性 来控制文档如何连接在一起(即连续显示或在新页面上显示)。
下载示例代码