BuildingBlock
Innehåll
[
Dölj
]BuildingBlock class
Representerar en dokumentpost i ordlistan såsom en byggsten, autotext eller en autokorrigeringspost.
För att lära dig mer, besökAspose.Words Document Object Model (DOM) dokumentationsartikel.
public class BuildingBlock : CompositeNode
Konstruktörer
namn | Beskrivning |
---|---|
BuildingBlock(GlossaryDocument) | Initierar en ny instans av den här klassen. |
Egenskaper
namn | Beskrivning |
---|---|
Behavior { get; set; } | Anger beteendet som ska tillämpas när innehållet i byggstenen infogas i huvuddokumentet. |
Category { get; set; } | Anger kategoriseringen på andra nivån för byggblocket. |
Count { get; } | Hämtar antalet omedelbara barn till denna nod. |
CustomNodeId { get; set; } | Anger anpassad nodidentifierare. |
Description { get; set; } | Hämtar eller ställer in beskrivningen som är kopplad till detta byggblock. |
virtual Document { get; } | Hämtar dokumentet som denna nod tillhör. |
FirstChild { get; } | Får det första barnet i noden. |
FirstSection { get; } | Hämtar det första avsnittet i byggblocket. |
Gallery { get; set; } | Anger kategoriseringen på första nivån för byggblocket för -klassificering eller sortering av användargränssnitt. |
Guid { get; set; } | Hämtar eller ställer in en identifierare (en 128-bitars GUID) som unikt identifierar denna byggsten. |
HasChildNodes { get; } | ReturnerarSann om denna nod har några undernoder. |
override IsComposite { get; } | ReturnerarSann eftersom denna nod kan ha underordnade noder. |
LastChild { get; } | Hämtar nodens sista underordnade. |
LastSection { get; } | Hämtar det sista avsnittet i byggblocket. |
Name { get; set; } | Hämtar eller ställer in namnet på denna byggsten. |
NextSibling { get; } | Hämtar noden omedelbart efter denna nod. |
override NodeType { get; } | ReturnerarBuildingBlock värde. |
ParentNode { get; } | Hämtar den omedelbara föräldern till denna nod. |
PreviousSibling { get; } | Hämtar noden omedelbart före denna nod. |
Range { get; } | Returnerar enRange objekt som representerar den del av ett dokument som finns i denna nod. |
Sections { get; } | Returnerar en samling som representerar alla sektioner i byggblocket. |
Type { get; set; } | Anger byggblockstyp. |
Metoder
namn | Beskrivning |
---|---|
override Accept(DocumentVisitor) | Accepterar en besökare. |
AppendChild(Node) | Lägger till den angivna noden i slutet av listan över underordnade noder för denna nod. |
Clone(bool) | Skapar en dubblett av noden. |
CreateNavigator() | Skapar navigator som kan användas för att korsa och läsa noder. |
GetAncestor(NodeType) | Hämtar den första förfadern till den angivnaNodeType . |
GetAncestor(Type) | Hämtar den första förfadern till den angivna objekttypen. |
GetChild(NodeType, int, bool) | Returnerar en N:te underordnad nod som matchar den angivna typen. |
GetChildNodes(NodeType, bool) | Returnerar en aktiv samling av underordnade noder som matchar den angivna typen. |
GetEnumerator() | Tillhandahåller stöd för varje stiliteration över undernoderna för denna nod. |
override GetText() | Hämtar texten för denna nod och alla dess underordnade. |
IndexOf(Node) | Returnerar indexet för den angivna undernoden i den underordnade nodmatrisen. |
InsertAfter(Node, Node) | Infogar den angivna noden omedelbart efter den angivna referensnoden. |
InsertBefore(Node, Node) | Infogar den angivna noden omedelbart före den angivna referensnoden. |
NextPreOrder(Node) | Hämtar nästa nod enligt algoritmen för förbeställningsträdet. |
PrependChild(Node) | Lägger till den angivna noden i början av listan över underordnade noder för denna nod. |
PreviousPreOrder(Node) | Hämtar föregående nod enligt algoritmen för förbeställningsträdet. |
Remove() | Tar bort sig själv från föräldern. |
RemoveAllChildren() | Tar bort alla undernoder för den aktuella noden. |
RemoveChild(Node) | Tar bort den angivna underordnade noden. |
RemoveSmartTags() | Tar bort allaSmartTag underliggande noder till den aktuella noden. |
SelectNodes(string) | Väljer en lista med noder som matchar XPath-uttrycket. |
SelectSingleNode(string) | Väljer den förstaNode som matchar XPath-uttrycket. |
ToString(SaveFormat) | Exporterar innehållet i noden till en sträng i angivet format. |
ToString(SaveOptions) | Exporterar innehållet i noden till en sträng med de angivna sparalternativen. |
Anmärkningar
BuildingBlock
kan endast innehållaSection
knutpunkter.
BuildingBlock
kan bara vara ett barn avGlossaryDocument
.
Du kan skapa nya byggblock och infoga dem i ett ordlistadokument. Du kan ändra eller ta bort befintliga byggblock. Du kan kopiera eller flytta byggstenar mellan dokument. Du kan infoga innehållet i ett byggblock i ett dokument.
MotsvarardocPart ,docPartPr ochdocPartBody element i OOXML.
Exempel
Visar hur man lägger till ett anpassat byggblock till ett dokument.
public void CreateAndInsert()
{
// Ett dokuments ordlista dokument lagrar byggstenar.
Document doc = new Document();
GlossaryDocument glossaryDoc = new GlossaryDocument();
doc.GlossaryDocument = glossaryDoc;
// Skapa ett byggblock, namnge det och lägg sedan till det i ordlistans dokument.
BuildingBlock block = new BuildingBlock(glossaryDoc)
{
Name = "Custom Block"
};
glossaryDoc.AppendChild(block);
// Alla nya byggblock GUID har samma nollvärde som standard, och vi kan ge dem ett nytt unikt värde.
Assert.AreEqual("00000000-0000-0000-0000-000000000000", block.Guid.ToString());
block.Guid = Guid.NewGuid();
// Följande egenskaper kategoriserar byggstenar
// i menyn kan vi komma åt i Microsoft Word via "Infoga" -> "Snabbdelar" -> "Byggstensarrangör".
Assert.AreEqual("(Empty Category)", block.Category);
Assert.AreEqual(BuildingBlockType.None, block.Type);
Assert.AreEqual(BuildingBlockGallery.All, block.Gallery);
Assert.AreEqual(BuildingBlockBehavior.Content, block.Behavior);
// Innan vi kan lägga till den här byggstenen i vårt dokument måste vi ge det lite innehåll,
// vilket vi kommer att göra med en dokumentbesökare. Den här besökaren kommer också att ange en kategori, ett galleri och ett beteende.
BuildingBlockVisitor visitor = new BuildingBlockVisitor(glossaryDoc);
block.Accept(visitor);
// Vi kan komma åt blocket som vi just skapade från ordlistans dokument.
BuildingBlock customBlock = glossaryDoc.GetBuildingBlock(BuildingBlockGallery.QuickParts,
"My custom building blocks", "Custom Block");
// Själva blocket är ett avsnitt som innehåller texten.
Assert.AreEqual($"Text inside {customBlock.Name}\f", customBlock.FirstSection.Body.FirstParagraph.GetText());
Assert.AreEqual(customBlock.FirstSection, customBlock.LastSection);
// Nu kan vi infoga det i dokumentet som ett nytt avsnitt.
doc.AppendChild(doc.ImportNode(customBlock.FirstSection, true));
// Vi kan också hitta det i Microsoft Words Building Blocks Organizer och placera det manuellt.
doc.Save(ArtifactsDir + "BuildingBlocks.CreateAndInsert.dotx");
}
/// <summary>
/// Konfigurerar ett besökt byggblock som ska infogas i dokumentet som en snabb del och lägger till text i dess innehåll.
/// </summary>
public class BuildingBlockVisitor : DocumentVisitor
{
public BuildingBlockVisitor(GlossaryDocument ownerGlossaryDoc)
{
mBuilder = new StringBuilder();
mGlossaryDoc = ownerGlossaryDoc;
}
public override VisitorAction VisitBuildingBlockStart(BuildingBlock block)
{
// Konfigurera byggblocket som en snabbdel och lägg till egenskaper som används av 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;
// Lägg till ett avsnitt med text.
// Om du infogar blocket i dokumentet kommer detta avsnitt att läggas till med dess underordnade noder på platsen.
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;
}
Se även
- class CompositeNode
- namnutrymme Aspose.Words.BuildingBlocks
- hopsättning Aspose.Words