BuildingBlock
内容
[
隐藏
]BuildingBlock class
表示词汇表文档条目,例如 Building Block、自动图文集或自动更正条目。
要了解更多信息,请访问Aspose.Words 文档对象模型 (DOM)文档文章。
public class BuildingBlock : CompositeNode
构造函数
姓名 | 描述 |
---|---|
BuildingBlock(GlossaryDocument) | 初始化此类的新实例。 |
特性
姓名 | 描述 |
---|---|
Behavior { get; set; } | 指定将构建块 的内容插入主文档时应应用的行为。 |
Category { get; set; } | 指定构建块的二级分类。 |
Count { get; } | 获取此节点的直接子节点的数量。 |
CustomNodeId { get; set; } | 指定自定义节点标识符。 |
Description { get; set; } | 获取或设置与此构建块关联的描述。 |
virtual Document { get; } | 获取该节点所属的文档。 |
FirstChild { get; } | 获取节点的第一个子节点。 |
FirstSection { get; } | 获取构建块中的第一个部分。 |
Gallery { get; set; } | 指定构建块的第一级分类,以用于 分类或用户界面排序。 |
Guid { get; set; } | 获取或设置唯一标识此构建块的标识符(128 位 GUID)。 |
HasChildNodes { get; } | 返回真的 如果该节点有任何子节点. |
override IsComposite { get; } | 返回真的 因为该节点可以有子节点。 |
LastChild { get; } | 获取节点的最后一个子节点。 |
LastSection { get; } | 获取构建块中的最后一部分。 |
Name { get; set; } | 获取或设置此构建块的名称。 |
NextSibling { get; } | 获取紧随该节点的下一个节点。 |
override NodeType { get; } | 返回BuildingBlock值. |
ParentNode { get; } | 获取此节点的直接父节点。 |
PreviousSibling { get; } | 获取紧邻此节点之前的节点。 |
Range { get; } | 返回一个Range 表示此节点中包含的文档部分的对象。 |
Sections { get; } | 返回表示构建块中所有部分的集合。 |
Type { get; set; } | 指定构建块类型。 |
方法
姓名 | 描述 |
---|---|
override Accept(DocumentVisitor) | 接受访客。 |
AppendChild(Node) | 将指定节点添加到该节点的子节点列表的末尾。 |
Clone(bool) | 创建节点的副本。 |
CreateNavigator() | 创建可用于遍历和读取节点的导航器。 |
GetAncestor(NodeType) | 获取指定的第一个祖先NodeType . |
GetAncestor(Type) | 获取指定对象类型的第一个祖先。 |
GetChild(NodeType, int, bool) | 返回与指定类型匹配的第 N 个子节点。 |
GetChildNodes(NodeType, bool) | 返回与指定类型匹配的子节点的实时集合。 |
GetEnumerator() | 为该节点的子节点上的每个样式迭代提供支持。 |
override GetText() | 获取此节点及其所有子节点的文本。 |
IndexOf(Node) | 返回子节点数组中指定子节点的索引。 |
InsertAfter(Node, Node) | 在指定的引用节点之后立即插入指定的节点。 |
InsertBefore(Node, Node) | 在指定的引用节点之前插入指定的节点。 |
NextPreOrder(Node) | 根据先序树遍历算法获取下一个节点。 |
PrependChild(Node) | 将指定节点添加到该节点的子节点列表的开头。 |
PreviousPreOrder(Node) | 根据先序树遍历算法获取前一个节点。 |
Remove() | 将自身从父级中删除。 |
RemoveAllChildren() | 删除当前节点的所有子节点。 |
RemoveChild(Node) | 删除指定的子节点。 |
RemoveSmartTags() | 删除所有SmartTag 当前节点的后代节点. |
SelectNodes(string) | 选择与 XPath 表达式匹配的节点列表。 |
SelectSingleNode(string) | 选择第一个Node 与 XPath 表达式匹配。 |
ToString(SaveFormat) | 将节点的内容导出为指定格式的字符串。 |
ToString(SaveOptions) | 使用指定的保存选项将节点的内容导出到字符串中。 |
评论
BuildingBlock
只能包含Section
节点。
BuildingBlock
只能是一个孩子GlossaryDocument
。
您可以创建新的构建基块并将其插入术语表文档中。 您可以修改或删除现有的构建基块。您可以在文档之间复制或移动构建块 。您可以将构建块的内容插入到文档中。
对应于文档部分,文档部分Pr和文档部分正文OOXML 中的元素。
例子
演示如何将自定义构建块添加到文档中。
public void CreateAndInsert()
{
// 文档的术语表文档存储构建块。
Document doc = new Document();
GlossaryDocument glossaryDoc = new GlossaryDocument();
doc.GlossaryDocument = glossaryDoc;
// 创建一个构建块,为其命名,然后将其添加到术语表文档中。
BuildingBlock block = new BuildingBlock(glossaryDoc)
{
Name = "Custom Block"
};
glossaryDoc.AppendChild(block);
// 默认情况下,所有新的构建块 GUID 都具有相同的零值,我们可以给它们一个新的唯一值。
Assert.AreEqual("00000000-0000-0000-0000-000000000000", block.Guid.ToString());
block.Guid = Guid.NewGuid();
// 以下属性对构建块进行分类
// 在菜单中我们可以通过“插入”在 Microsoft Word 中访问 -> “快速零件”-> “积木组织者”。
Assert.AreEqual("(Empty Category)", block.Category);
Assert.AreEqual(BuildingBlockType.None, block.Type);
Assert.AreEqual(BuildingBlockGallery.All, block.Gallery);
Assert.AreEqual(BuildingBlockBehavior.Content, block.Behavior);
// 在我们将此构建块添加到文档之前,我们需要为其提供一些内容,
// 我们将使用文档访问者来完成此操作。该访客还将设置类别、画廊和行为。
BuildingBlockVisitor visitor = new BuildingBlockVisitor(glossaryDoc);
block.Accept(visitor);
// 我们可以访问刚刚从词汇表文档中创建的块。
BuildingBlock customBlock = glossaryDoc.GetBuildingBlock(BuildingBlockGallery.QuickParts,
"My custom building blocks", "Custom Block");
// 块本身是包含文本的部分。
Assert.AreEqual($"Text inside {customBlock.Name}\f", customBlock.FirstSection.Body.FirstParagraph.GetText());
Assert.AreEqual(customBlock.FirstSection, customBlock.LastSection);
// 现在,我们可以将其作为新部分插入到文档中。
doc.AppendChild(doc.ImportNode(customBlock.FirstSection, true));
// 我们也可以在 Microsoft Word 的 Building Blocks Organizer 中找到它并手动放置。
doc.Save(ArtifactsDir + "BuildingBlocks.CreateAndInsert.dotx");
}
/// <summary>
/// 设置要作为快速部分插入到文档中的已访问构建块,并向其内容添加文本。
/// </summary>
public class BuildingBlockVisitor : DocumentVisitor
{
public BuildingBlockVisitor(GlossaryDocument ownerGlossaryDoc)
{
mBuilder = new StringBuilder();
mGlossaryDoc = ownerGlossaryDoc;
}
public override VisitorAction VisitBuildingBlockStart(BuildingBlock block)
{
// 将 Building Block 配置为快速部件,并添加 Building Blocks Organizer 使用的属性。
block.Behavior = BuildingBlockBehavior.Paragraph;
block.Category = "My custom building blocks";
block.Description =
"Using this block in the Quick Parts section of word will place its contents at the cursor.";
block.Gallery = BuildingBlockGallery.QuickParts;
// 添加带有文本的部分。
// 将块插入到文档中将在该位置附加此部分及其子节点。
Section section = new Section(mGlossaryDoc);
block.AppendChild(section);
block.FirstSection.EnsureMinimum();
Run run = new Run(mGlossaryDoc, "Text inside " + block.Name);
block.FirstSection.Body.FirstParagraph.AppendChild(run);
return VisitorAction.Continue;
}
public override VisitorAction VisitBuildingBlockEnd(BuildingBlock block)
{
mBuilder.Append("Visited " + block.Name + "\r\n");
return VisitorAction.Continue;
}
private readonly StringBuilder mBuilder;
private readonly GlossaryDocument mGlossaryDoc;
}
也可以看看
- class CompositeNode
- 命名空间 Aspose.Words.BuildingBlocks
- 部件 Aspose.Words