FieldToc
İçindekiler
[
Saklamak
]FieldToc class
TOC alanını uygular.
Daha fazla bilgi edinmek için şu adresi ziyaret edin:Alanlarla Çalışma belgeleme makalesi.
public class FieldToc : Field
yapıcılar
İsim | Tanım |
---|---|
FieldToc() | Default_Constructor |
Özellikleri
İsim | Tanım |
---|---|
BookmarkName { get; set; } | Tabloyu oluşturmak için kullanılan belge bölümünü işaretleyen yer iminin adını alır veya ayarlar. |
CaptionlessTableOfFiguresLabel { get; set; } | Başlık etiketi ve numarasını içermeyen bir şekil tablosu oluştururken kullanılan sıra tanımlayıcısının adını alır veya ayarlar. |
CustomStyles { get; set; } | İçindekiler tablosuna dahil edilecek yerleşik başlık stilleri dışındaki stillerin listesini alır veya ayarlar. |
DisplayResult { get; } | Görüntülenen alan sonucunu temsil eden metni alır. |
End { get; } | Alan sonunu temsil eden düğümü alır. |
EntryIdentifier { get; set; } | Dahil edilen TC alanlarının tür tanımlayıcılarıyla eşleşmesi gereken bir dize alır veya ayarlar. |
EntryLevelRange { get; set; } | İçindekiler tablosu girişlerinin dahil edilecek seviye aralığını alır veya ayarlar. |
EntrySeparator { get; set; } | Bir girişi ve sayfa numarasını ayıran karakter dizisini alır veya ayarlar. |
Format { get; } | Bir tane alırFieldFormat alanın biçimlendirmesine yazılmış erişim sağlayan nesne. |
HeadingLevelRange { get; set; } | Dahil edilecek başlık düzeyleri aralığını alır veya ayarlar. |
HideInWebLayout { get; set; } | Web düzeni görünümünde sekme liderinin ve sayfa numaralarının gizlenip gizlenmeyeceğini alır veya ayarlar. |
InsertHyperlinks { get; set; } | İçindekiler tablosu girişlerinin köprü metni olup olmayacağını alır veya ayarlar. |
IsDirty { get; set; } | Belgede yapılan diğer değişiklikler nedeniyle alanın geçerli sonucunun artık doğru (eski) olup olmadığını alır veya ayarlar. |
IsLocked { get; set; } | Alanın kilitli olup olmadığını alır veya ayarlar (sonucunu yeniden hesaplamamalıdır). |
LocaleId { get; set; } | Alanın LCID’sini alır veya ayarlar. |
PageNumberOmittingLevelRange { get; set; } | İçindekiler tablosunun girişlerinin sayfa numaralarının atlanacağı düzey aralığını alır veya ayarlar. |
PrefixedSequenceIdentifier { get; set; } | Girişin sayfa numarasına bir önek eklenmesi gereken bir dizinin tanımlayıcısını alır veya ayarlar. |
PreserveLineBreaks { get; set; } | Tablo girişleri içindeki yeni satır karakterlerinin korunup korunmayacağını alır veya ayarlar. |
PreserveTabs { get; set; } | Tablo girişleri içindeki sekme girişlerinin korunup korunmayacağını alır veya ayarlar. |
Result { get; set; } | Alan ayırıcısı ile alan sonu arasındaki metni alır veya ayarlar. |
Separator { get; } | Alan ayırıcısını temsil eden düğümü alır.hükümsüz . |
SequenceSeparator { get; set; } | Sıra numaralarını ve sayfa numaralarını ayırmak için kullanılan karakter dizisini alır veya ayarlar. |
Start { get; } | Alanın başlangıcını temsil eden düğümü alır. |
TableOfFiguresLabel { get; set; } | Şekil tablosu oluştururken kullanılan sıra tanımlayıcısının adını alır veya ayarlar. |
virtual Type { get; } | Microsoft Word alan türünü alır. |
UseParagraphOutlineLevel { get; set; } | Uygulanan paragraf anahat düzeyinin kullanılıp kullanılmayacağını alır veya ayarlar. |
yöntemler
İsim | Tanım |
---|---|
GetFieldCode() | Alan başlangıcı ile alan ayırıcısı (veya ayırıcı yoksa alan sonu) arasındaki metni döndürür. Hem alan kodu hem de alt alanların alan sonucu dahil edilir. |
GetFieldCode(bool) | Alan başlangıcı ile alan ayırıcısı (veya ayırıcı yoksa alan sonu) arasındaki metni döndürür. |
Remove() | Alanı belgeden kaldırır. Alanın hemen ardından bir düğüm döndürür. Alanın sonu, üst düğümünün son alt ‘siyse, üst paragrafını döndürür. Alan zaten kaldırılmışsa, şunu döndürürhükümsüz . |
Unlink() | Alan bağlantısını kaldırma işlemini gerçekleştirir. |
Update() | Alan güncellemesini gerçekleştirir. Alan zaten güncelleniyorsa fırlatır. |
Update(bool) | Bir alan güncellemesi gerçekleştirir. Alan zaten güncelleniyorsa fırlatır. |
UpdatePageNumbers() | Bu içerik tablosundaki öğelerin sayfa numaralarını günceller. |
Notlar
TC alanları, başlık düzeyleri ve belirtilen stiller tarafından belirtilen girdileri kullanarak bir içerik tablosu (aynı zamanda bir şekil tablosu da olabilir) oluşturur ve bu tabloyu belgenin bu noktasına ekler.
Örnekler
İçindekiler tablosunun nasıl ekleneceğini ve başlık stillerine göre girdilerle nasıl doldurulacağını gösterir.
public void FieldToc()
{
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.StartBookmark("MyBookmark");
// Tüm başlıkları bir içerik tablosuna derleyecek bir TOC alanı ekleyin.
// Her başlık için bu alan, sola o başlık stilindeki metinle bir satır oluşturacaktır.
// ve başlığın göründüğü sayfa sağda.
FieldToc field = (FieldToc)builder.InsertField(FieldType.FieldTOC, true);
// Yalnızca başlıkları listelemek için BookmarkName özelliğini kullanın
// "MyBookmark" adlı bir yer iminin sınırları içerisinde görünenler.
field.BookmarkName = "MyBookmark";
// "Başlık 1" gibi yerleşik bir başlık stili uygulanan metin, başlık olarak sayılır.
// Bu özellikteki İçindekiler tablosuna göre başlık olarak seçilecek ek stiller ve bunların İçindekiler seviyelerini adlandırabiliriz.
field.CustomStyles = "Quote; 6; Intense Quote; 7";
// Varsayılan olarak, Stiller/İçindekiler düzeyleri CustomStyles özelliğinde virgülle ayrılır,
// ancak bu özellikte özel bir ayırıcı ayarlayabiliriz.
doc.FieldOptions.CustomTocStyleSeparator = ";";
// İçindekiler düzeyi bu aralığın dışında olan başlıkları hariç tutacak şekilde alanı yapılandırın.
field.HeadingLevelRange = "1-3";
// İçindekiler tablosu, İçindekiler düzeyi bu aralıkta olan başlıkların sayfa numaralarını görüntülemeyecektir.
field.PageNumberOmittingLevelRange = "2-5";
// Her başlığı sayfa numarasından ayıracak özel bir dize ayarlayın.
field.EntrySeparator = "-";
field.InsertHyperlinks = true;
field.HideInWebLayout = false;
field.PreserveLineBreaks = true;
field.PreserveTabs = true;
field.UseParagraphOutlineLevel = false;
InsertNewPageWithHeading(builder, "First entry", "Heading 1");
builder.Writeln("Paragraph text.");
InsertNewPageWithHeading(builder, "Second entry", "Heading 1");
InsertNewPageWithHeading(builder, "Third entry", "Quote");
InsertNewPageWithHeading(builder, "Fourth entry", "Intense Quote");
// Bu iki başlığın sayfa numaraları "2-5" aralığında olduğundan atlanacaktır.
InsertNewPageWithHeading(builder, "Fifth entry", "Heading 2");
InsertNewPageWithHeading(builder, "Sixth entry", "Heading 3");
// Bu giriş görünmüyor çünkü "Başlık 4" daha önce belirlediğimiz "1-3" aralığının dışında.
InsertNewPageWithHeading(builder, "Seventh entry", "Heading 4");
builder.EndBookmark("MyBookmark");
builder.Writeln("Paragraph text.");
// Bu giriş, İçindekiler tablosunda belirtilen yer iminin dışında olduğu için görünmüyor.
InsertNewPageWithHeading(builder, "Eighth entry", "Heading 1");
Assert.AreEqual(" TOC \\b MyBookmark \\t \"Quote; 6; Intense Quote; 7\" \\o 1-3 \\n 2-5 \\p - \\h \\x \\w", field.GetFieldCode());
field.UpdatePageNumbers();
doc.UpdateFields();
doc.Save(ArtifactsDir + "Field.TOC.docx");
}
/// <summary>
/// Yeni bir sayfa başlat ve belirtilen stilde bir paragraf ekle.
/// </summary>
public void InsertNewPageWithHeading(DocumentBuilder builder, string captionText, string styleName)
{
builder.InsertBreak(BreakType.PageBreak);
string originalStyle = builder.ParagraphFormat.StyleName;
builder.ParagraphFormat.Style = builder.Document.Styles[styleName];
builder.Writeln(captionText);
builder.ParagraphFormat.Style = builder.Document.Styles[originalStyle];
}
İçindekiler alanının SEQ alanlarını kullanarak girdilerle nasıl doldurulacağını gösterir.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Bir TOC alanı, belgede bulunan her SEQ alanı için içerik tablosunda bir giriş oluşturabilir.
// Her girdi, SEQ alanını ve alanın göründüğü sayfa numarasını içeren paragrafı içerir.
FieldToc fieldToc = (FieldToc)builder.InsertField(FieldType.FieldTOC, true);
// SEQ alanları her SEQ alanında artan bir sayım görüntüler.
// Bu alanlar ayrıca her benzersiz adlandırılmış dizi için ayrı sayımları korur
// SEQ alanının "SequenceIdentifier" özelliği ile tanımlanır.
// İçindekiler tablosunun ana dizisini adlandırmak için "TableOfFiguresLabel" özelliğini kullanın.
// Şimdi, bu İçindekiler tablosu yalnızca "SequenceIdentifier" değeri "MySequence" olarak ayarlanmış SEQ alanlarından girişler oluşturacaktır.
fieldToc.TableOfFiguresLabel = "MySequence";
// "PrefixedSequenceIdentifier" özelliğinde başka bir SEQ alan dizisi adlandırabiliriz.
// Bu önek dizisinden gelen SEQ alanları TOC girişleri oluşturmaz.
// Ana dizi SEQ alanından oluşturulan her TOC girişi artık aynı zamanda sayıyı da görüntüleyecektir.
// ön ek dizisi şu anda girişi yapan birincil dizi SEQ alanında açık.
fieldToc.PrefixedSequenceIdentifier = "PrefixSequence";
// Her TOC girişi, hemen solunda önek dizisi sayısını görüntüler
// ana dizi SEQ alanının göründüğü sayfa numarasının.
// Bu iki sayının arasına gelecek özel bir ayraç belirleyebiliriz.
fieldToc.SequenceSeparator = ">";
Assert.AreEqual(" TOC \\c MySequence \\s PrefixSequence \\d >", fieldToc.GetFieldCode());
builder.InsertBreak(BreakType.PageBreak);
// Bu İçindekiler tablosunu doldurmak için SEQ alanlarını kullanmanın iki yolu vardır.
// 1 - TOC'nin önek dizisine ait bir SEQ alanı ekleniyor:
// Bu alan "PrefixSequence" için SEQ dizi sayısını 1 artıracaktır.
// Bu alan tanımlanan ana diziye ait olmadığından
// TOC'nin "TableOfFiguresLabel" özelliği sayesinde bir girdi olarak görünmeyecektir.
FieldSeq fieldSeq = (FieldSeq)builder.InsertField(FieldType.FieldSequence, true);
fieldSeq.SequenceIdentifier = "PrefixSequence";
builder.InsertParagraph();
Assert.AreEqual(" SEQ PrefixSequence", fieldSeq.GetFieldCode());
// 2 - TOC'nin ana dizisine ait bir SEQ alanı ekleniyor:
// Bu SEQ alanı İçindekiler'de bir giriş oluşturacaktır.
// TOC girişi, SEQ alanının bulunduğu paragrafı ve göründüğü sayfanın numarasını içerecektir.
// Bu giriş ayrıca önek dizisinin şu anda bulunduğu sayıyı da görüntüler,
// sayfa numarasından TOC'nin SeqenceSeparator özelliğindeki değerle ayrılır.
// "PrefixSequence" sayısı 1'dir, bu ana dizi SEQ alanı 2. sayfadadır,
// ve ayraç ">" olduğundan, giriş "1>2" olarak görüntülenecektir.
builder.Write("First TOC entry, MySequence #");
fieldSeq = (FieldSeq)builder.InsertField(FieldType.FieldSequence, true);
fieldSeq.SequenceIdentifier = "MySequence";
Assert.AreEqual(" SEQ MySequence", fieldSeq.GetFieldCode());
// Bir sayfa ekle, önek dizisini 2'şer birer ilerlet ve sonrasında İçindekiler girişi oluşturmak için bir SEQ alanı ekle.
// Önek dizisi artık 2'de ve ana dizi SEQ alanı 3. sayfadadır.
// bu sayede İçindekiler girişi sayfa sayısında "2>3" olarak görüntülenecektir.
builder.InsertBreak(BreakType.PageBreak);
fieldSeq = (FieldSeq)builder.InsertField(FieldType.FieldSequence, true);
fieldSeq.SequenceIdentifier = "PrefixSequence";
builder.InsertParagraph();
fieldSeq = (FieldSeq)builder.InsertField(FieldType.FieldSequence, true);
builder.Write("Second TOC entry, MySequence #");
fieldSeq.SequenceIdentifier = "MySequence";
doc.UpdateFields();
doc.Save(ArtifactsDir + "Field.TOC.SEQ.docx");
Ayrıca bakınız
- class Field
- ad alanı Aspose.Words.Fields
- toplantı Aspose.Words