BookmarkStart

BookmarkStart class

Representa el inicio de un marcador en un documento de Word.

Para obtener más información, visite elTrabajar con marcadores artículo de documentación.

public class BookmarkStart : Node

Constructores

NombreDescripción
BookmarkStart(DocumentBase, string)Inicializa una nueva instancia delBookmarkStart clase.

Propiedades

NombreDescripción
Bookmark { get; }Obtiene el objeto de fachada que encapsula el inicio y el final de este marcador.
CustomNodeId { get; set; }Especifica el identificador de nodo personalizado.
virtual Document { get; }Obtiene el documento al que pertenece este nodo.
virtual IsComposite { get; }Devolucionesverdadero si este nodo puede contener otros nodos.
Name { get; set; }Obtiene o establece el nombre del marcador.
NextSibling { get; }Obtiene el nodo que sigue inmediatamente a este nodo.
override NodeType { get; }DevolucionesBookmarkStart .
ParentNode { get; }Obtiene el padre inmediato de este nodo.
PreviousSibling { get; }Obtiene el nodo inmediatamente anterior a este nodo.
Range { get; }Devuelve unRange objeto que representa la parte de un documento contenido en este nodo.

Métodos

NombreDescripción
override Accept(DocumentVisitor)Acepta un visitante.
Clone(bool)Crea un duplicado del nodo.
GetAncestor(NodeType)Obtiene el primer ancestro del especificadoNodeType .
GetAncestor(Type)Obtiene el primer antepasado del tipo de objeto especificado.
override GetText()Devuelve una cadena vacía.
NextPreOrder(Node)Obtiene el siguiente nodo según el algoritmo transversal del árbol de pedidos anticipados.
PreviousPreOrder(Node)Obtiene el nodo anterior según el algoritmo transversal del árbol de pedidos anticipados.
Remove()Se elimina del padre.
ToString(SaveFormat)Exporta el contenido del nodo a una cadena en el formato especificado.
ToString(SaveOptions)Exporta el contenido del nodo a una cadena usando las opciones de guardado especificadas.

Observaciones

Un marcador completo en un documento de Word consta de unBookmarkStart y una coincidenciaBookmarkEnd con el mismo nombre de marcador.

BookmarkStart yBookmarkEnd son solo marcadores dentro de un document que especifican dónde comienza y termina el marcador.

Utilizar elBookmark clase como “fachada” para trabajar con un bookmark como un solo objeto.

Ejemplos

Muestra cómo agregar marcadores y actualizar su contenido.

public void CreateUpdateAndPrintBookmarks()
{
    // Cree un documento con tres marcadores y luego utilice una implementación personalizada de visitante de documentos para imprimir su contenido.
    Document doc = CreateDocumentWithBookmarks(3);
    BookmarkCollection bookmarks = doc.Range.Bookmarks;
    PrintAllBookmarkInfo(bookmarks);

    // Se puede acceder a los marcadores en la colección de marcadores por índice o nombre, y sus nombres se pueden actualizar.
    bookmarks[0].Name = $"{bookmarks[0].Name}_NewName";
    bookmarks["MyBookmark_2"].Text = $"Updated text contents of {bookmarks[1].Name}";

    // Imprime todos los marcadores nuevamente para ver los valores actualizados.
    PrintAllBookmarkInfo(bookmarks);
}

/// <summary>
/// Crea un documento con un número determinado de marcadores.
/// </summary>
private static Document CreateDocumentWithBookmarks(int numberOfBookmarks)
{
    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);

    for (int i = 1; i <= numberOfBookmarks; i++)
    {
        string bookmarkName = "MyBookmark_" + i;

        builder.Write("Text before bookmark.");
        builder.StartBookmark(bookmarkName);
        builder.Write($"Text inside {bookmarkName}.");
        builder.EndBookmark(bookmarkName);
        builder.Writeln("Text after bookmark.");
    }

    return doc;
}

/// <summary>
/// Utilice un iterador y un visitante para imprimir información de cada marcador de la colección.
/// </summary>
private static void PrintAllBookmarkInfo(BookmarkCollection bookmarks)
{
    BookmarkInfoPrinter bookmarkVisitor = new BookmarkInfoPrinter();

    // Obtenga cada marcador de la colección para aceptar un visitante que imprimirá su contenido.
    using (IEnumerator<Bookmark> enumerator = bookmarks.GetEnumerator())
    {
        while (enumerator.MoveNext())
        {
            Bookmark currentBookmark = enumerator.Current;

            if (currentBookmark != null)
            {
                currentBookmark.BookmarkStart.Accept(bookmarkVisitor);
                currentBookmark.BookmarkEnd.Accept(bookmarkVisitor);

                Console.WriteLine(currentBookmark.BookmarkStart.GetText());
            }
        }
    }
}

/// <summary>
/// Imprime el contenido de cada marcador visitado en la consola.
/// </summary>
public class BookmarkInfoPrinter : DocumentVisitor
{
    public override VisitorAction VisitBookmarkStart(BookmarkStart bookmarkStart)
    {
        Console.WriteLine($"BookmarkStart name: \"{bookmarkStart.Name}\", Contents: \"{bookmarkStart.Bookmark.Text}\"");
        return VisitorAction.Continue;
    }

    public override VisitorAction VisitBookmarkEnd(BookmarkEnd bookmarkEnd)
    {
        Console.WriteLine($"BookmarkEnd name: \"{bookmarkEnd.Name}\"");
        return VisitorAction.Continue;
    }
}

Ver también