EndEditableRange

EndEditableRange()

Marca la posición actual en el documento como un final de rango editable.

public EditableRangeEnd EndEditableRange()

Valor_devuelto

El nodo final del rango editable que se acaba de crear.

Observaciones

El rango editable en un documento puede superponerse y abarcar cualquier rango. Para crear un rango editable válido necesita llamar a ambosStartEditableRange yEndEditableRange oEndEditableRange métodos.

El rango editable mal formado se ignorará cuando se guarde el documento.

Ejemplos

Muestra cómo trabajar con un rango editable.

Document doc = new Document();
doc.Protect(ProtectionType.ReadOnly, "MyPassword");

DocumentBuilder builder = new DocumentBuilder(doc);
builder.Writeln("Hello world! Since we have set the document's protection level to read-only," +
                " we cannot edit this paragraph without the password.");

// Los rangos editables nos permiten dejar partes de documentos protegidos abiertas para su edición.
EditableRangeStart editableRangeStart = builder.StartEditableRange();
builder.Writeln("This paragraph is inside an editable range, and can be edited.");
EditableRangeEnd editableRangeEnd = builder.EndEditableRange();

// Un rango editable bien formado tiene un nodo inicial y un nodo final.
// Estos nodos tienen ID coincidentes y abarcan nodos editables.
EditableRange editableRange = editableRangeStart.EditableRange;

Assert.AreEqual(editableRangeStart.Id, editableRange.Id);
Assert.AreEqual(editableRangeEnd.Id, editableRange.Id);

// Diferentes partes del rango editable se vinculan entre sí.
Assert.AreEqual(editableRangeStart.Id, editableRange.EditableRangeStart.Id);
Assert.AreEqual(editableRangeStart.Id, editableRangeEnd.EditableRangeStart.Id);
Assert.AreEqual(editableRange.Id, editableRangeStart.EditableRange.Id);
Assert.AreEqual(editableRangeEnd.Id, editableRange.EditableRangeEnd.Id);

// Podemos acceder a los tipos de nodos de cada parte de esta manera. El rango editable en sí no es un nodo,
// sino una entidad que consta de un inicio, un final y su contenido adjunto.
Assert.AreEqual(NodeType.EditableRangeStart, editableRangeStart.NodeType);
Assert.AreEqual(NodeType.EditableRangeEnd, editableRangeEnd.NodeType);

builder.Writeln("This paragraph is outside the editable range, and cannot be edited.");

doc.Save(ArtifactsDir + "EditableRange.CreateAndRemove.docx");

// Eliminar un rango editable. Todos los nodos que estaban dentro del rango permanecerán intactos.
editableRange.Remove();

Ver también


EndEditableRange(EditableRangeStart)

Marca la posición actual en el documento como un final de rango editable.

public EditableRangeEnd EndEditableRange(EditableRangeStart start)
ParámetroEscribeDescripción
startEditableRangeStartEste inicio de rango editable.

Valor_devuelto

El nodo final del rango editable que se acaba de crear.

Observaciones

Utilice esta sobrecarga durante la creación de rangos editables anidados.

El rango editable en un documento puede superponerse y abarcar cualquier rango. Para crear un rango editable válido necesita llamar a ambosStartEditableRange yEndEditableRange oEndEditableRange métodos.

El rango editable mal formado se ignorará cuando se guarde el documento.

Ejemplos

Muestra cómo crear rangos editables anidados.

Document doc = new Document();
doc.Protect(ProtectionType.ReadOnly, "MyPassword");

DocumentBuilder builder = new DocumentBuilder(doc);
builder.Writeln("Hello world! Since we have set the document's protection level to read-only, " +
                "we cannot edit this paragraph without the password.");

// Crea dos rangos editables anidados.
EditableRangeStart outerEditableRangeStart = builder.StartEditableRange();
builder.Writeln("This paragraph inside the outer editable range and can be edited.");

EditableRangeStart innerEditableRangeStart = builder.StartEditableRange();
builder.Writeln("This paragraph inside both the outer and inner editable ranges and can be edited.");

// Actualmente, el cursor de inserción del nodo del generador de documentos se encuentra en más de un rango editable en curso.
// Cuando queremos finalizar un rango editable en esta situación,
// necesitamos especificar cuál de los rangos deseamos finalizar pasando su nodo EditableRangeStart.
builder.EndEditableRange(innerEditableRangeStart);

builder.Writeln("This paragraph inside the outer editable range and can be edited.");

builder.EndEditableRange(outerEditableRangeStart);

builder.Writeln("This paragraph is outside any editable ranges, and cannot be edited.");

// Si una región de texto tiene dos rangos editables superpuestos con grupos específicos,
// el grupo combinado de usuarios excluidos por ambos grupos no puede editarlo.
outerEditableRangeStart.EditableRange.EditorGroup = EditorType.Everyone;
innerEditableRangeStart.EditableRange.EditorGroup = EditorType.Contributors;

doc.Save(ArtifactsDir + "EditableRange.Nested.docx");

Ver también