BuildingBlock

BuildingBlock class

Representerar en post i ett ordlistadokument, till exempel ett byggblock, en autotext eller en autokorrigeringspost.

För att lära dig mer, besökAspose.Words-dokumentobjektmodell (DOM) dokumentationsartikel.

public class BuildingBlock : CompositeNode

Konstruktörer

namnBeskrivning
BuildingBlock(GlossaryDocument)Initierar en ny instans av den här klassen.

Egenskaper

namnBeskrivning
Behavior { get; set; }Anger beteendet som ska tillämpas när innehållet i byggblocket 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 anger beskrivningen som är associerad med detta byggblock.
virtual Document { get; }Hämtar dokumentet som denna nod tillhör.
FirstChild { get; }Hämtar nodens första barn.
FirstSection { get; }Hämtar den första sektionen i byggblocket.
Gallery { get; set; }Anger den första kategoriseringen för byggblocket i syfte att klassificera eller sortera användargränssnittet.
Guid { get; set; }Hämtar eller ställer in en identifierare (ett 128-bitars GUID) som unikt identifierar detta byggblock.
HasChildNodes { get; }Returersann om den här noden har några undernoder.
override IsComposite { get; }Returersann eftersom denna nod kan ha underordnade noder.
LastChild { get; }Hämtar nodens sista barn.
LastSection { get; }Hämtar den sista sektionen i byggblocket.
Name { get; set; }Hämtar eller anger namnet på detta byggblock.
NextSibling { get; }Hämtar noden som följer direkt 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 som omedelbart föregår denna nod.
Range { get; }Returnerar enRangeobjekt 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 byggstenstypen.

Metoder

namnBeskrivning
override Accept(DocumentVisitor)Tar emot en besökare.
override AcceptEnd(DocumentVisitor)Accepterar en besökare för att besöka slutet av byggblocket.
override AcceptStart(DocumentVisitor)Accepterar en besökare för att besöka början av byggblocket.
AppendChild<T>(T)Lägger till den angivna noden i slutet av listan över underordnade noder för denna nod.
Clone(bool)Skapar en duplikat av noden.
CreateNavigator()Skapar en 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 live-samling av underordnade noder som matchar den angivna typen.
GetEnumerator()Ger stöd för iterationen för varje stil över de underordnade noderna till denna nod.
override GetText()Hämtar texten för denna nod och alla dess underordnade noder.
IndexOf(Node)Returnerar indexet för den angivna undernoden i undernodsmatrisen.
InsertAfter<T>(T, Node)Infogar den angivna noden omedelbart efter den angivna referensnoden.
InsertBefore<T>(T, 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ädtraversering.
PrependChild<T>(T)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 trädtraversering i förbeställning.
Remove()Tar bort sig själv från föräldern.
RemoveAllChildren()Tar bort alla undernoder till den aktuella noden.
RemoveChild<T>(T)Tar bort den angivna undernoden.
RemoveSmartTags()Tar bort allaSmartTag underordnade 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 nodens innehåll till en sträng i det angivna formatet.
ToString(SaveOptions)Exporterar nodens innehåll till en sträng med de angivna sparalternativen.

Anmärkningar

BuildingBlock kan endast innehållaSection noder.

BuildingBlock kan bara vara ett barn avGlossaryDocument.

Du kan skapa nya byggstenar och infoga dem i ett ordlistadokument. Du kan ändra eller ta bort befintliga byggstenar. Du kan kopiera eller flytta byggstenar mellan dokument. Du kan infoga innehållet i ett byggsten i ett dokument.

Motsvarar dendocPart ,docPartPr ochdocPartBodyelement i OOXML.

Exempel

Visar hur man lägger till ett anpassat byggblock i ett dokument.

public void CreateAndInsert()
{
    // Ett dokuments ordlista innehåller byggstenar.
    Document doc = new Document();
    GlossaryDocument glossaryDoc = new GlossaryDocument();
    doc.GlossaryDocument = glossaryDoc;

    // Skapa en byggsten, namnge den och lägg sedan till den i ordlistadokumentet.
    BuildingBlock block = new BuildingBlock(glossaryDoc)
    {
        Name = "Custom Block"
    };

    glossaryDoc.AppendChild(block);

    // Alla nya byggblocks-GUID:er 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 som vi kan komma åt i Microsoft Word via "Insert" -> "Quick Parts" -> "Building Blocks Organizer".
    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 den lite innehåll,
    // vilket vi kommer att göra med hjälp av en dokumentbesökare. Denna besökare kommer också att ange en kategori, ett galleri och ett beteende.
    BuildingBlockVisitor visitor = new BuildingBlockVisitor(glossaryDoc);
    // Besök början/slut av BuildingBlock.
    block.Accept(visitor);

    // Vi kan komma åt blocket som vi just skapade från ordlistadokumentet.
    BuildingBlock customBlock = glossaryDoc.GetBuildingBlock(BuildingBlockGallery.QuickParts,
        "My custom building blocks", "Custom Block");

    // Själva blocket är en sektion 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 den i Microsoft Words Building Blocks Organizer och placera den manuellt.
    doc.Save(ArtifactsDir + "BuildingBlocks.CreateAndInsert.dotx");
}

/// <summary>
/// Ställer in ett besökt byggblock som ska infogas i dokumentet som en snabbdel 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 blocket infogas i dokumentet läggs det här avsnittet 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