Aspose.Words for .NET使用章节教程(2):如何处理文档分段——Aspose.Words中的分段
Aspose.Words For .Net是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。此外,API支持所有流行的Word处理文件格式,并允许将Word文档导出或转换为固定布局文件格式和最常用的图像/多媒体格式。
【下载Aspose.Words for .NET最新试用版】
接下来我们将进入“如何使用Aspose.Words以编程方式处理文档分段”的介绍。在生成文档时,使用section非常有用。您可以组合文档,根据从多个模板文档复制的多个部分构建输出文档,或者根据某些应用程序逻辑删除不需要的部分,从而有效地将公共模板文档过滤到特定场景。
Aspose.Words中的部分
文档的各节由Section和SectionCollection类表示。Section对象是Document节点的直接子节点,可以通过Document.Sections属性访问。
▲获得一分段
每个分段由一个Section对象表示,该对象可以通过索引从Document.Sections集合中获取。默认页边距、页眉/页脚距离和列间距取决于模拟MS Word行为的当前区域。例如,现在英语(美国)和英语(英国)的所有页边距都是1英寸。左,右,上边距为2.5厘米; 德国底部边距为2厘米。如果没有为提及参数设置显式值,则新默认值用于新文档和加载文档。
下面的代码示例显示了如何访问指定索引处的节:
//指向documents目录的路径。 string dataDir = RunExamples.GetDataDir_WorkingWithSections(); Document doc = new Document(dataDir + "Document.doc"); Section section = doc.Sections[0]; section.PageSetup.LeftMargin = 90; // 3.17 cm section.PageSetup.RightMargin = 90; // 3.17 cm section.PageSetup.TopMargin = 72; // 2.54 cm section.PageSetup.BottomMargin = 72; // 2.54 cm section.PageSetup.HeaderDistance = 35.4; // 1.25 cm section.PageSetup.FooterDistance = 35.4; // 1.25 cm section.PageSetup.TextColumns.Spacing = 35.4; // 1.25 cm
▲添加一个分段
Document对象提供了可以使用Document.Sections访问的节集合。这将返回包含文档部分的SectionCollection对象。然后,您可以使用此对象上的SectionCollection.Add方法将一个节添加到文档的末尾。下面的代码示例显示了如何将一个部分添加到文档的末尾:
Document doc = new Document(dataDir); Section sectionToAdd = new Section(doc); doc.Sections.Add(sectionToAdd);
▲删除一个分段
以与上面讨论的相同方式,使用Document.Sections检索文档的部分。然后,可以使用SectionCollection.Remove删除指定的节或SectionCollection.RemoveAt以删除指定索引处的节。 下面的代码示例显示了如何删除指定索引处的节:
Document doc = new Document(dataDir); doc.Sections.RemoveAt(0);
下面的代码示例展示了如何从文档中删除所有部分:
Document doc = new Document(dataDir); doc.Sections.Clear();
▲添加分段内容
如果要复制和插入除了节分隔符和节属性之外的节的主要文本,请使用Section.PrependContent或Section.AppendContent为要复制的内容传递Section对象。如果没有创建新的分段,页眉和页脚不会被复制。前一种方法在该部分的开头插入内容的副本,而后者在该部分的末尾插入内容的副本。下面的代码示例显示了如何附加现有部分的内容:
//文档目录的路径。 string dataDir = RunExamples.GetDataDir_WorkingWithSections(); Document doc = new Document(dataDir + "Section.AppendContent.doc"); // This is the section that we will append and prepend to. Section section = doc.Sections[2]; //复制第1部分的内容并将其插入指定部分的开头。 Section sectionToPrepend = doc.Sections[0]; section.PrependContent(sectionToPrepend); //复制第二部分的内容并将其插入指定部分的末尾。 Section sectionToAppend = doc.Sections[1]; section.AppendContent(sectionToAppend);
▲删除分段内容
要删除节的主要文本,请使用Section.ClearContent。要删除节中的页眉和页脚,请调用Section.ClearHeadersFooters。下面的示例显示了如何删除节的主要内容:
//文档目录的路径。 string dataDir = RunExamples.GetDataDir_WorkingWithSections(); Document doc = new Document(dataDir + "Document.doc"); Section section = doc.Sections[0]; section.ClearContent();
▲克隆一分段
使用Section.Clone方法创建特定节的副本。下面的示例显示了如何创建特定部分的副本:
//文档目录的路径。 string dataDir = RunExamples.GetDataDir_WorkingWithSections(); Document doc = new Document(dataDir + "Document.doc"); Section cloneSection = doc.Sections[0].Clone();
▲在文档之间复制分段
将一个文档完全或部分复制到另一个文档是一项非常流行的任务 这是实现这一点的“模式”。在插入来自其他文档的任何节点之前,必须使用Document.ImportNode方法导入该节点。该Document.ImportNode方法使原始节点的副本,并更新所有的内部文档特定的属性,如清单和样式,使他们的目标文档中有效。 下面的示例显示了如何在文档之间复制分段:
//文档目录的路径。 string dataDir = RunExamples.GetDataDir_WorkingWithSections(); Document srcDoc = new Document(dataDir + "Document.doc"); Document dstDoc = new Document(); Section sourceSection = srcDoc.Sections[0]; Section newSection = (Section)dstDoc.ImportNode(sourceSection, true); dstDoc.Sections.Add(newSection); dataDir = dataDir + "Document.Copy_out.doc"; dstDoc.Save(dataDir);
*想要获取Aspose.Words正版授权可联系哦~
ASPOSE技术交流QQ群已开通,各类资源及时分享,欢迎交流讨论!(扫描下方二维码加入群聊)