SdtType

SdtType enumeration

Anger typen av en SDT-nod (Structured Document Tag).

public enum SdtType

Värderingar

namnVärdeBeskrivning
None0Ingen typ är tilldelad SDT:n.
Bibliography1SDT representerar en bibliografisk post.
Citation2SDT representerar en hänvisning.
Equation3SDT representerar en ekvation.
DropDownList4SDT representerar en rullgardinslista när den visas i dokumentet.
ComboBox5SDT representerar en kombinationsruta när den visas i dokumentet.
Date6SDT representerar en datumväljare när den visas i dokumentet.
BuildingBlockGallery7SDT representerar en byggstensgallerityp.
DocPartObj8SDT representerar en dokumentdelstyp.
Group9SDT representerar en begränsad gruppering när den visas i dokumentet.
Picture10SDT representerar en bild när den visas i dokumentet.
RichText11SDT representerar en RTF-ruta när den visas i dokumentet.
PlainText12SDT representerar en vanlig textruta när den visas i dokumentet.
Checkbox13SDT representerar en kryssruta när den visas i dokumentet.
RepeatingSection14SDT representerar upprepande sektionstyp när den visas i dokumentet.
RepeatingSectionItem15SDT representerar upprepande sektionsobjekt.
EntityPicker16SDT representerar en entitetsväljare som låter användaren välja en instans av en extern innehållstyp.

Exempel

Visar hur man skapar en strukturerad dokumenttagg av typen Citat.

Document doc = new Document();

StructuredDocumentTag sdt = new StructuredDocumentTag(doc, SdtType.Citation, MarkupLevel.Inline);
Paragraph paragraph = doc.FirstSection.Body.FirstParagraph;
paragraph.AppendChild(sdt);

// Skapa ett hänvisningsfält.
DocumentBuilder builder = new DocumentBuilder(doc);
builder.MoveToParagraph(0, -1);
builder.InsertField(@"CITATION Ath22 \l 1033 ", "(John Lennon, 2022)");

// Flytta fältet till taggen för strukturerat dokument.
while (sdt.NextSibling != null)
    sdt.AppendChild(sdt.NextSibling);

doc.Save(ArtifactsDir + "StructuredDocumentTag.Citation.docx");

Visar hur man skapar gruppstrukturerade dokumenttaggar på radnivå.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Table table = builder.StartTable();

// Skapa en gruppstrukturerad dokumenttagg på radnivå.
StructuredDocumentTag groupSdt = new StructuredDocumentTag(doc, SdtType.Group, MarkupLevel.Row);
table.AppendChild(groupSdt);
groupSdt.IsShowingPlaceholderText = false;
groupSdt.RemoveAllChildren();

// Skapa en underrad till taggen för det strukturerade dokumentet.
Row row = new Row(doc);
groupSdt.AppendChild(row);

Cell cell = new Cell(doc);
row.AppendChild(cell);

builder.EndTable();

// Infoga cellinnehåll.
cell.EnsureMinimum();
builder.MoveTo(cell.LastParagraph);
builder.Write("Lorem ipsum dolor.");

// Infoga text efter tabellen.
builder.MoveTo(table.NextSibling);
builder.Write("Nulla blandit nisi.");

doc.Save(ArtifactsDir + "StructuredDocumentTag.SdtAtRowLevel.docx");

Visar hur man arbetar med stilar för innehållskontrollelement.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Nedan följer två sätt att tillämpa en stil från dokumentet på en strukturerad dokumenttagg.
// 1 - Använd ett stilobjekt från dokumentets stilsamling:
Style quoteStyle = doc.Styles[StyleIdentifier.Quote];
StructuredDocumentTag sdtPlainText =
    new StructuredDocumentTag(doc, SdtType.PlainText, MarkupLevel.Inline) { Style = quoteStyle };

// 2 - Referera till en stil i dokumentet med namn:
StructuredDocumentTag sdtRichText =
    new StructuredDocumentTag(doc, SdtType.RichText, MarkupLevel.Inline) { StyleName = "Quote" };

builder.InsertNode(sdtPlainText);
builder.InsertNode(sdtRichText);

Assert.AreEqual(NodeType.StructuredDocumentTag, sdtPlainText.NodeType);

NodeCollection tags = doc.GetChildNodes(NodeType.StructuredDocumentTag, true);

foreach (Node node in tags)
{
    StructuredDocumentTag sdt = (StructuredDocumentTag)node;

    Console.WriteLine(sdt.WordOpenXMLMinimal);

    Assert.AreEqual(StyleIdentifier.Quote, sdt.Style.StyleIdentifier);
    Assert.AreEqual("Quote", sdt.StyleName);
}

Visar hur man fyller en tabell med data från en XML-del.

Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

CustomXmlPart xmlPart = doc.CustomXmlParts.Add("Books",
    "<books>" +
        "<book>" +
            "<title>Everyday Italian</title>" +
            "<author>Giada De Laurentiis</author>" +
        "</book>" +
        "<book>" +
            "<title>The C Programming Language</title>" +
            "<author>Brian W. Kernighan, Dennis M. Ritchie</author>" +
        "</book>" +
        "<book>" +
            "<title>Learning XML</title>" +
            "<author>Erik T. Ray</author>" +
        "</book>" +
    "</books>");

// Skapa rubriker för data från XML-innehållet.
Table table = builder.StartTable();
builder.InsertCell();
builder.Write("Title");
builder.InsertCell();
builder.Write("Author");
builder.EndRow();
builder.EndTable();

// Skapa en tabell med en upprepande sektion inuti.
StructuredDocumentTag repeatingSectionSdt =
    new StructuredDocumentTag(doc, SdtType.RepeatingSection, MarkupLevel.Row);
repeatingSectionSdt.XmlMapping.SetMapping(xmlPart, "/books[1]/book", string.Empty);
table.AppendChild(repeatingSectionSdt);

// Lägg till ett upprepande avsnittsobjekt inuti det upprepande avsnittet och markera det som en rad.
// Den här tabellen kommer att ha en rad för varje element som vi kan hitta i XML-dokumentet
// använder XPath-filen "/books[1]/book", av vilken det finns tre.
StructuredDocumentTag repeatingSectionItemSdt =
    new StructuredDocumentTag(doc, SdtType.RepeatingSectionItem, MarkupLevel.Row);
repeatingSectionSdt.AppendChild(repeatingSectionItemSdt);

Row row = new Row(doc);
repeatingSectionItemSdt.AppendChild(row);

// Mappa XML-data med skapade tabellceller för titel och författare till varje bok.
StructuredDocumentTag titleSdt =
    new StructuredDocumentTag(doc, SdtType.PlainText, MarkupLevel.Cell);
titleSdt.XmlMapping.SetMapping(xmlPart, "/books[1]/book[1]/title[1]", string.Empty);
row.AppendChild(titleSdt);

StructuredDocumentTag authorSdt =
    new StructuredDocumentTag(doc, SdtType.PlainText, MarkupLevel.Cell);
authorSdt.XmlMapping.SetMapping(xmlPart, "/books[1]/book[1]/author[1]", string.Empty);
row.AppendChild(authorSdt);

doc.Save(ArtifactsDir + "StructuredDocumentTag.RepeatingSectionItem.docx");

Se även