CustomTocStyleSeparator

FieldOptions.CustomTocStyleSeparator property

Obtiene o establece un separador de estilo personalizado para el modificador \t enFieldToc campo.

public string CustomTocStyleSeparator { get; set; }

Observaciones

De forma predeterminada, los estilos personalizados definidos por el modificador \t en elFieldToc Los campos están separados por un delimitador tomado de la cultura actual. Esta propiedad anula ese comportamiento al especificar un delimitador definido por el usuario.

Ejemplos

Muestra cómo insertar una tabla de contenido y rellenarla con entradas basadas en estilos de encabezado.

public void FieldToc()
{
    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);

    builder.StartBookmark("MyBookmark");

    // Inserte un campo TOC, que compilará todos los encabezados en una tabla de contenido.
    // Para cada encabezado, este campo creará una línea con el texto en ese estilo de encabezado a la izquierda,
    // y la página en la que aparece el encabezado aparece a la derecha.
    FieldToc field = (FieldToc)builder.InsertField(FieldType.FieldTOC, true);

    // Utilice la propiedad BookmarkName para enumerar únicamente los encabezados
    // que aparecen dentro de los límites de un marcador con el nombre "MiMarcador".
    field.BookmarkName = "MyBookmark";

    // El texto con un estilo de encabezado incorporado, como "Encabezado 1", aplicado, contará como un encabezado.
    //Podemos nombrar estilos adicionales para que sean seleccionados como encabezados por la TOC en esta propiedad y sus niveles de TOC.
    field.CustomStyles = "Quote; 6; Intense Quote; 7";

    // De forma predeterminada, los niveles de Estilos/TOC están separados en la propiedad CustomStyles por una coma,
    // pero podemos establecer un delimitador personalizado en esta propiedad.
    doc.FieldOptions.CustomTocStyleSeparator = ";";

    // Configure el campo para excluir cualquier encabezado que tenga niveles de TOC fuera de este rango.
    field.HeadingLevelRange = "1-3";

    // La tabla de contenidos no mostrará los números de página de los encabezados cuyos niveles de tabla de contenidos estén dentro de este rango.
    field.PageNumberOmittingLevelRange = "2-5";

     // Establezca una cadena personalizada que separará cada encabezado de su número de página.
    field.EntrySeparator = "-";
    field.InsertHyperlinks = true;
    field.HideInWebLayout = false;
    field.PreserveLineBreaks = true;
    field.PreserveTabs = true;
    field.UseParagraphOutlineLevel = false;

    InsertNewPageWithHeading(builder, "First entry", "Heading 1");
    builder.Writeln("Paragraph text.");
    InsertNewPageWithHeading(builder, "Second entry", "Heading 1");
    InsertNewPageWithHeading(builder, "Third entry", "Quote");
    InsertNewPageWithHeading(builder, "Fourth entry", "Intense Quote");

    // Estos dos encabezados tendrán los números de página omitidos porque están dentro del rango "2-5".
    InsertNewPageWithHeading(builder, "Fifth entry", "Heading 2");
    InsertNewPageWithHeading(builder, "Sixth entry", "Heading 3");

    //Esta entrada no aparece porque "Título 4" está fuera del rango "1-3" que hemos establecido anteriormente.
    InsertNewPageWithHeading(builder, "Seventh entry", "Heading 4");

    builder.EndBookmark("MyBookmark");
    builder.Writeln("Paragraph text.");

    //Esta entrada no aparece porque está fuera del marcador especificado por la tabla de contenidos.
    InsertNewPageWithHeading(builder, "Eighth entry", "Heading 1");

    Assert.AreEqual(" TOC  \\b MyBookmark \\t \"Quote; 6; Intense Quote; 7\" \\o 1-3 \\n 2-5 \\p - \\h \\x \\w", field.GetFieldCode());

    field.UpdatePageNumbers();
    doc.UpdateFields();
    doc.Save(ArtifactsDir + "Field.TOC.docx");
}

/// <summary>
/// Iniciar una nueva página e insertar un párrafo de un estilo específico.
/// </summary>
public void InsertNewPageWithHeading(DocumentBuilder builder, string captionText, string styleName)
{
    builder.InsertBreak(BreakType.PageBreak);
    string originalStyle = builder.ParagraphFormat.StyleName;
    builder.ParagraphFormat.Style = builder.Document.Styles[styleName];
    builder.Writeln(captionText);
    builder.ParagraphFormat.Style = builder.Document.Styles[originalStyle];
}

Ver también