GetEntity

LayoutCollector.GetEntity method

LayoutEnumerator bu belirtilen düğüme karşılık gelir. Döndürülen değeri bir argüman olarak kullanabilirsiniz.Current verilen belge numaralandırılmıştır ve düğümün belgesi aynıdır.

public object GetEntity(Node node)

Notlar

Bu yöntem sadece işe yararParagraph düğümler ve bölünmez satır içi düğümler, ör.BookmarkStart veyaShape için çalışmıyorRun ,CellRow veyaTable düğümler ve üstbilgi/altbilgi içindeki düğümler.

Varlığın bir için döndürüldüğünü unutmayın.Paragraph düğüm bir paragraf sonu aralığıdır. Üst satıra çıkmak için uygun yöntemi kullanın

BirRun sonra, it ‘den hemen önce yer imi ekleyebilir ve bunun yerine yer imine gidebilirsiniz.

BirCell düğüm sonra birParagraph düğümü bu hücrede ve ardından bir üst varlığa yükselir. Aynı yaklaşım aşağıdakiler için de kullanılabilir:Row veTable düğümler.

Örnekler

Bir düğümün yaydığı sayfa aralıklarının nasıl görüneceğini gösterir.

Document doc = new Document();
LayoutCollector layoutCollector = new LayoutCollector(doc);

// Belgemizin içeriğinin kaç sayfaya yayıldığını saymak için "GetNumPagesSpanned" yöntemini çağırın.
// Belge boş olduğundan, o sayfa sayısı şu anda sıfırdır.
Assert.AreEqual(doc, layoutCollector.Document);
Assert.AreEqual(0, layoutCollector.GetNumPagesSpanned(doc));

// Belgeyi 5 sayfa içerikle doldurun.
DocumentBuilder builder = new DocumentBuilder(doc);
builder.Write("Section 1");
builder.InsertBreak(BreakType.PageBreak);
builder.InsertBreak(BreakType.PageBreak);
builder.InsertBreak(BreakType.SectionBreakEvenPage);
builder.Write("Section 2");
builder.InsertBreak(BreakType.PageBreak);
builder.InsertBreak(BreakType.PageBreak);

// layout toplayıcıdan önce bize verecek "UpdatePageLayout" yöntemini çağırmamız gerekiyor.
// sayfa sayısı gibi mizanpajla ilgili herhangi bir ölçüm için doğru bir rakam.
Assert.AreEqual(0, layoutCollector.GetNumPagesSpanned(doc));

layoutCollector.Clear();
doc.UpdatePageLayout();

Assert.AreEqual(5, layoutCollector.GetNumPagesSpanned(doc));

// Herhangi bir düğümün başlangıç ve bitiş sayfalarının numaralarını ve bunların genel sayfa aralıklarını görebiliriz.
NodeCollection nodes = doc.GetChildNodes(NodeType.Any, true);
foreach (Node node in nodes)
{
    Console.WriteLine($"->  NodeType.{node.NodeType}: ");
    Console.WriteLine(
        $"\tStarts on page {layoutCollector.GetStartPageIndex(node)}, ends on page {layoutCollector.GetEndPageIndex(node)}," +
        $" spanning {layoutCollector.GetNumPagesSpanned(node)} pages.");
}

// Bir LayoutEnumerator kullanarak düzen varlıklarını yineleyebiliriz.
LayoutEnumerator layoutEnumerator = new LayoutEnumerator(doc);

Assert.AreEqual(LayoutEntityType.Page, layoutEnumerator.Type);

// LayoutEnumerator, bir ağaç gibi düzen varlıklarının koleksiyonunu geçebilir.
// Herhangi bir düğümün karşılık gelen düzen varlığına da uygulayabiliriz.
layoutEnumerator.Current = layoutCollector.GetEntity(doc.GetChild(NodeType.Paragraph, 1, true));

Assert.AreEqual(LayoutEntityType.Span, layoutEnumerator.Type);
Assert.AreEqual("¶", layoutEnumerator.Text);

Ayrıca bakınız