EditableRangeEnd
EditableRangeEnd class
Word belgesinde düzenlenebilir bir aralığın sonunu temsil eder.
Daha fazla bilgi edinmek için şu adresi ziyaret edin:Aspose.Words Belge Nesne Modeli (DOM) belgeleme makalesi.
public sealed class EditableRangeEnd : Node
Özellikleri
İsim | Tanı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. |
EditableRangeStart { get; } | Karşılık gelenEditableRangeStart , ID. tarafından alındı |
Id { get; set; } | Düzenlenebilir aralığın tanımlayıcısını belirtir. |
virtual IsComposite { get; } | Geri Döndürürdoğru eğer bu düğüm diğer düğümleri içerebiliyorsa. |
NextSibling { get; } | Bu düğümü hemen takip eden düğümü alır. |
override NodeType { get; } | Geri DöndürürEditableRangeEnd . |
ParentNode { get; } | Bu düğümün en yakın üst düğümünü alır. |
PreviousSibling { get; } | Bu düğümden hemen önceki düğümü alır. |
Range { get; } | BirRange bu düğümde bulunan bir belgenin bölümünü temsil eden nesne. |
yöntemler
İsim | Tanım |
---|---|
override Accept(DocumentVisitor) | Bir ziyaretçiyi kabul eder. |
Clone(bool) | Düğümün bir kopyasını oluşturur. |
GetAncestor(NodeType) | Belirtilenin ilk atasını alırNodeType . |
GetAncestor(Type) | Belirtilen nesne türünün ilk atasını alır. |
virtual GetText() | Bu düğümün ve tüm alt düğümlerinin metnini alır. |
NextPreOrder(Node) | Ön sipariş ağacı geçiş algoritmasına göre bir sonraki düğümü alır. |
PreviousPreOrder(Node) | Ön sipariş ağacı geçiş algoritmasına göre önceki düğümü alır. |
Remove() | Kendini ana öğeden kaldırır. |
ToString(SaveFormat) | Düğümün içeriğini belirtilen biçimde bir dizeye aktarır. |
ToString(SaveOptions) | Belirtilen kaydetme seçeneklerini kullanarak düğümün içeriğini bir dizeye aktarır. |
Notlar
Word belgesindeki tam düzenlenebilir aralık aşağıdakilerden oluşur:EditableRangeStart
ve eşleşen birEditableRangeEnd
Aynı Id ile
EditableRangeStart
VeEditableRangeEnd
document içindeki düzenlenebilir aralığın nerede başladığını ve bittiğini belirten işaretleyicilerdir.
KullanınEditableRange
düzenlenebilir aralığıyla tek bir nesne olarak çalışmak için bir “cephe” olarak sınıf.
Ş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ırlanacağı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 editörlerin listesini daraltmanın iki karşılıklı olarak özel 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 grubu 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çeriklerini yazdır.
EditableRangePrinter editableRangePrinter = new EditableRangePrinter();
doc.Accept(editableRangePrinter);
Console.WriteLine(editableRangePrinter.ToText());
}
/// <summary>
/// Ziyaret edilen düzenlenebilir aralıkların özelliklerini ve içeriklerini bir dizgede 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 bir 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
- class Node
- ad alanı Aspose.Words
- toplantı Aspose.Words