EditableRangeStart

EditableRangeStart class

Bir Word belgesindeki düzenlenebilir aralığın başlangıcını temsil eder.

Daha fazlasını öğrenmek için şu adresi ziyaret edin:Aspose.Words Belge Nesne Modeli (DOM) dokümantasyon makalesi.

public sealed class EditableRangeStart : Node

Özellikleri

İsimTanım
CustomNodeId { get; set; }Özel düğüm tanımlayıcısını belirtir.
virtual Document { get; }Bu düğümün ait olduğu belgeyi alır.
EditableRange { get; }Bu düzenlenebilir aralığın başlangıç ve bitişini kapsayan cephe nesnesini alır.
Id { get; set; }Düzenlenebilir aralığın tanımlayıcısını belirtir.
virtual IsComposite { get; }İadelerdoğru bu düğüm başka düğümler içeriyorsa.
NextSibling { get; }Bu düğümden hemen sonra gelen düğümü alır.
override NodeType { get; }İadelerEditableRangeStart .
ParentNode { get; }Bu düğümün doğrudan ebeveynini alır.
PreviousSibling { get; }Bu düğümden hemen önceki düğümü alır.
Range { get; }Bir değeri döndürürRange Bu düğümde bulunan bir belgenin bölümünü temsil eden nesne.

yöntemler

İsimTanım
override Accept(DocumentVisitor)Ziyaretçi kabul eder.
Clone(bool)Düğümün bir kopyasını oluşturur.
GetAncestor(NodeType)Belirtilenin ilk atayı alırNodeType .
GetAncestor(Type)Belirtilen nesne türünün ilk atayı alır.
virtual GetText()Bu düğümün ve tüm alt öğelerinin metnini alır.
NextPreOrder(Node)Ön sipariş ağaç geçiş algoritmasına göre sonraki düğümü alır.
PreviousPreOrder(Node)Ön sipariş ağaç geçiş algoritmasına göre önceki düğümü alır.
Remove()Kendini üst öğeden kaldırır.
ToString(SaveFormat)Düğümün içeriğini belirtilen formatta bir dizeye aktarır.
ToString(SaveOptions)Belirtilen kaydetme seçeneklerini kullanarak düğümün içeriğini bir dizeye aktarır.

Notlar

Bir Word belgesindeki düzenlenebilir aralığın tamamı aşağıdakilerden oluşur:EditableRangeStart ve eşleşen birEditableRangeEnd aynı kimliğe sahip.

EditableRangeStart VeEditableRangeEnd düzenlenebilir aralığın nerede başlayıp nerede bittiğini belirten, document içindeki işaretçilerdir yalnızca.

KullanEditableRange düzenlenebilir range ile tek bir nesne olarak çalışmak için sınıfı bir “cephe” olarak kullanın.

Şu anda düzenlenebilir aralıklar yalnızca satır içi düzeyde, yani içeride desteklenmektedirParagraph, ancak düzenlenebilir aralık başlangıcı ve düzenlenebilir aralık sonu farklı paragraflarda olabilir.

Örnekler

Düzenlenebilir aralıkların düzenleme haklarının belirli bir grup/kullanıcıyla nasıl sınırlandırılacağını gösterir.

public void Visitor()
{
    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.");

    // Belgeleri yazmaya karşı koruduğumuzda, düzenlenebilir aralıklar kullanıcıların düzenleyebileceği belirli alanları seçmemize olanak tanır.
    // İzin verilen düzenleyicilerin listesini daraltmanın birbirini dışlayan iki yolu vardır.
    // 1 - Bir kullanıcı belirtin:
    EditableRange editableRange = builder.StartEditableRange().EditableRange;
    editableRange.SingleUser = "john.doe@myoffice.com";
    builder.Writeln($"This paragraph is inside the first editable range, can only be edited by {editableRange.SingleUser}.");
    builder.EndEditableRange();

    Assert.AreEqual(EditorType.Unspecified, editableRange.EditorGroup);

    // 2 - İzin verilen kullanıcıların ilişkilendirildiği bir grup belirtin:
    editableRange = builder.StartEditableRange().EditableRange;
    editableRange.EditorGroup = EditorType.Administrators;
    builder.Writeln($"This paragraph is inside the first editable range, can only be edited by {editableRange.EditorGroup}.");
    builder.EndEditableRange();

    Assert.AreEqual(string.Empty, editableRange.SingleUser);

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

    // Belgedeki düzenlenebilir her aralığın ayrıntılarını ve içeriğini yazdırın.
    EditableRangePrinter editableRangePrinter = new EditableRangePrinter();

    doc.Accept(editableRangePrinter);

    Console.WriteLine(editableRangePrinter.ToText());
}

/// <summary>
/// Ziyaret edilen düzenlenebilir aralıkların özelliklerini ve içeriğini bir dizede toplar.
/// </summary>
public class EditableRangePrinter : DocumentVisitor
{
    public EditableRangePrinter()
    {
        mBuilder = new StringBuilder();
    }

    public string ToText()
    {
        return mBuilder.ToString();
    }

    public void Reset()
    {
        mBuilder.Clear();
        mInsideEditableRange = false;
    }

    /// <summary>
    /// Belgede EditableRangeStart düğümüyle karşılaşıldığında çağrılır.
    /// </summary>
    public override VisitorAction VisitEditableRangeStart(EditableRangeStart editableRangeStart)
    {
        mBuilder.AppendLine(" -- Editable range found! -- ");
        mBuilder.AppendLine("\tID:\t\t" + editableRangeStart.Id);
        if (editableRangeStart.EditableRange.SingleUser == string.Empty)
            mBuilder.AppendLine("\tGroup:\t" + editableRangeStart.EditableRange.EditorGroup);
        else
            mBuilder.AppendLine("\tUser:\t" + editableRangeStart.EditableRange.SingleUser);
        mBuilder.AppendLine("\tContents:");

        mInsideEditableRange = true;

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Belgede EditableRangeEnd düğümüyle karşılaşıldığında çağrılır.
    /// </summary>
    public override VisitorAction VisitEditableRangeEnd(EditableRangeEnd editableRangeEnd)
    {
        mBuilder.AppendLine(" -- End of editable range --\n");

        mInsideEditableRange = false;

        return VisitorAction.Continue;
    }

    /// <summary>
    /// Belgede bir Çalıştırma düğümüyle karşılaşıldığında çağrılır. Bu ziyaretçi yalnızca düzenlenebilir aralıklar içindeki çalıştırmaları kaydeder.
    /// </summary>
    public override VisitorAction VisitRun(Run run)
    {
        if (mInsideEditableRange) mBuilder.AppendLine("\t\"" + run.Text + "\"");

        return VisitorAction.Continue;
    }

    private bool mInsideEditableRange;
    private readonly StringBuilder mBuilder;
}

Ayrıca bakınız