FieldToc
Contenuti
[
Nascondere
]FieldToc class
Implementa il campo TOC.
Per saperne di più, visita ilLavorare con i campi articolo di documentazione.
public class FieldToc : Field
Costruttori
Nome | Descrizione |
---|---|
FieldToc() | Default_Costruttore |
Proprietà
Nome | Descrizione |
---|---|
BookmarkName { get; set; } | Ottiene o imposta il nome del segnalibro che contrassegna la porzione di documento utilizzata per creare la tabella. |
CaptionlessTableOfFiguresLabel { get; set; } | Ottiene o imposta il nome dell’identificatore di sequenza utilizzato durante la creazione di un indice di figure che non include l’etichetta e il numero della didascalia. |
CustomStyles { get; set; } | Ottiene o imposta un elenco di stili diversi dagli stili di intestazione incorporati da includere nel sommario. |
DisplayResult { get; } | Ottiene il testo che rappresenta il risultato del campo visualizzato. |
End { get; } | Ottiene il nodo che rappresenta la fine del campo. |
EntryIdentifier { get; set; } | Ottiene o imposta una stringa che deve corrispondere agli identificatori di tipo dei campi TC inclusi. |
EntryLevelRange { get; set; } | Ottiene o imposta un intervallo di livelli delle voci del sommario da includere. |
EntrySeparator { get; set; } | Ottiene o imposta una sequenza di caratteri che separano una voce e il relativo numero di pagina. |
Format { get; } | Ottiene aFieldFormat oggetto che fornisce accesso digitato alla formattazione del campo. |
HeadingLevelRange { get; set; } | Ottiene o imposta un intervallo di livelli di intestazione da includere. |
HideInWebLayout { get; set; } | Ottiene o imposta se nascondere il leader di tabulazione e i numeri di pagina nella visualizzazione layout Web. |
InsertHyperlinks { get; set; } | Ottiene o imposta se creare collegamenti ipertestuali alle voci del sommario. |
IsDirty { get; set; } | Ottiene o imposta se il risultato corrente del campo non è più corretto (obsoleto) a causa di altre modifiche apportate al documento. |
IsLocked { get; set; } | Ottiene o imposta se il campo è bloccato (non deve ricalcolare il risultato). |
LocaleId { get; set; } | Ottiene o imposta l’LCID del campo. |
PageNumberOmittingLevelRange { get; set; } | Ottiene o imposta un intervallo di livelli delle voci del sommario da cui omettere i numeri di pagina. |
PrefixedSequenceIdentifier { get; set; } | Ottiene o imposta l’identificatore di una sequenza per la quale deve essere aggiunto un prefisso al numero di pagina della voce. |
PreserveLineBreaks { get; set; } | Ottiene o imposta se conservare i caratteri di nuova riga all’interno delle voci della tabella. |
PreserveTabs { get; set; } | Ottiene o imposta se conservare le voci di tabulazione all’interno delle voci della tabella. |
Result { get; set; } | Ottiene o imposta il testo compreso tra il separatore di campo e la fine del campo. |
Separator { get; } | Ottiene il nodo che rappresenta il separatore di campo. Può esserenullo . |
SequenceSeparator { get; set; } | Ottiene o imposta la sequenza di caratteri utilizzata per separare i numeri di sequenza e i numeri di pagina. |
Start { get; } | Ottiene il nodo che rappresenta l’inizio del campo. |
TableOfFiguresLabel { get; set; } | Ottiene o imposta il nome dell’identificatore di sequenza utilizzato durante la creazione di un indice di figure. |
virtual Type { get; } | Ottiene il tipo di campo Microsoft Word. |
UseParagraphOutlineLevel { get; set; } | Ottiene o imposta se utilizzare il livello di struttura del paragrafo applicato. |
Metodi
Nome | Descrizione |
---|---|
GetFieldCode() | Restituisce il testo compreso tra l’inizio del campo e il separatore di campo (o la fine del campo se non è presente alcun separatore). Sono inclusi sia il codice di campo che il risultato del campo dei campi secondari. |
GetFieldCode(bool) | Restituisce il testo tra l’inizio del campo e il separatore di campo (o la fine del campo se non è presente alcun separatore). |
Remove() | Rimuove il campo dal documento. Restituisce un nodo subito dopo il campo. Se la fine del campo è l’ultimo figlio del suo nodo genitore, restituisce il paragrafo genitore. Se il campo è già stato rimosso, restituiscenullo . |
Unlink() | Esegue lo scollegamento del campo. |
Update() | Esegue l’aggiornamento del campo. Genera un risultato se il campo è già in fase di aggiornamento. |
Update(bool) | Esegue un aggiornamento del campo. Genera un risultato se il campo è già in fase di aggiornamento. |
UpdatePageNumbers() | Aggiorna i numeri di pagina per gli elementi in questo sommario. |
Osservazioni
Costruisce un sommario (che può anche essere un indice delle figure) utilizzando le voci specificate dai campi TC, i relativi livelli di intestazione e gli stili specificati, e inserisce la tabella in questa posizione nel documento.
Esempi
Mostra come inserire un sommario e popolarlo con voci basate sugli stili di intestazione.
public void FieldToc()
{
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.StartBookmark("MyBookmark");
// Inserisci un campo TOC, che compilerà tutte le intestazioni in un sommario.
// Per ogni intestazione, questo campo creerà una riga con il testo in quello stile di intestazione a sinistra,
// e la pagina in cui appare l'intestazione a destra.
FieldToc field = (FieldToc)builder.InsertField(FieldType.FieldTOC, true);
// Utilizza la proprietà BookmarkName per elencare solo le intestazioni
// che appaiono all'interno dei limiti di un segnalibro con il nome "MyBookmark".
field.BookmarkName = "MyBookmark";
// Il testo con uno stile di titolo integrato, ad esempio "Titolo 1", applicato ad esso verrà conteggiato come titolo.
// Possiamo nominare stili aggiuntivi da raccogliere come intestazioni dal TOC in questa proprietà e i relativi livelli TOC.
field.CustomStyles = "Quote; 6; Intense Quote; 7";
// Per impostazione predefinita, i livelli Stili/TOC sono separati nella proprietà CustomStyles da una virgola,
// ma possiamo impostare un delimitatore personalizzato in questa proprietà.
doc.FieldOptions.CustomTocStyleSeparator = ";";
// Configura il campo per escludere eventuali intestazioni con livelli di sommario esterni a questo intervallo.
field.HeadingLevelRange = "1-3";
// Il sommario non visualizzerà i numeri di pagina delle intestazioni i cui livelli di sommario rientrano in questo intervallo.
field.PageNumberOmittingLevelRange = "2-5";
// Imposta una stringa personalizzata che separerà ogni intestazione dal suo numero di pagina.
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");
// Queste due intestazioni avranno i numeri di pagina omessi perché rientrano nell'intervallo "2-5".
InsertNewPageWithHeading(builder, "Fifth entry", "Heading 2");
InsertNewPageWithHeading(builder, "Sixth entry", "Heading 3");
// Questa voce non viene visualizzata perché "Intestazione 4" non rientra nell'intervallo "1-3" impostato in precedenza.
InsertNewPageWithHeading(builder, "Seventh entry", "Heading 4");
builder.EndBookmark("MyBookmark");
builder.Writeln("Paragraph text.");
// Questa voce non viene visualizzata perché è esterna al segnalibro specificato dal sommario.
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>
/// Inizia una nuova pagina e inserisce un paragrafo con lo stile specificato.
/// </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];
}
Mostra come popolare un campo TOC con voci utilizzando i campi SEQ.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);
// Un campo TOC può creare una voce nel suo sommario per ogni campo SEQ trovato nel documento.
// Ogni voce contiene il paragrafo che include il campo SEQ e il numero della pagina in cui appare il campo.
FieldToc fieldToc = (FieldToc)builder.InsertField(FieldType.FieldTOC, true);
// I campi SEQ visualizzano un conteggio che aumenta in ciascun campo SEQ.
// Questi campi mantengono inoltre conteggi separati per ciascuna sequenza con nome univoco
// identificato dalla proprietà "SequenceIdentifier" del campo SEQ.
// Utilizza la proprietà "TableOfFiguresLabel" per denominare una sequenza principale per il sommario.
// Ora, questo sommario creerà solo voci dai campi SEQ con il loro "SequenceIdentifier" impostato su "MySequence".
fieldToc.TableOfFiguresLabel = "MySequence";
// Possiamo nominare un'altra sequenza di campi SEQ nella proprietà "PrefixedSequenceIdentifier".
// I campi SEQ di questa sequenza di prefissi non creeranno voci TOC.
// Ogni voce TOC creata da un campo SEQ della sequenza principale ora visualizzerà anche il conteggio
// la sequenza del prefisso è attualmente attiva nel campo SEQ della sequenza primaria che ha effettuato l'immissione.
fieldToc.PrefixedSequenceIdentifier = "PrefixSequence";
// Ciascuna voce del sommario visualizzerà il conteggio della sequenza del prefisso immediatamente a sinistra
// del numero di pagina su cui appare il campo SEQ della sequenza principale.
// Possiamo specificare un separatore personalizzato che apparirà tra questi due numeri.
fieldToc.SequenceSeparator = ">";
Assert.AreEqual(" TOC \\c MySequence \\s PrefixSequence \\d >", fieldToc.GetFieldCode());
builder.InsertBreak(BreakType.PageBreak);
// Esistono due modi per utilizzare i campi SEQ per popolare questo sommario.
// 1 - Inserimento di un campo SEQ che appartiene alla sequenza del prefisso del TOC:
// Questo campo incrementerà di 1 il conteggio della sequenza SEQ per "PrefixSequence".
// Poiché questo campo non appartiene alla sequenza principale identificata
// dalla proprietà "TableOfFiguresLabel" del sommario, non verrà visualizzato come voce.
FieldSeq fieldSeq = (FieldSeq)builder.InsertField(FieldType.FieldSequence, true);
fieldSeq.SequenceIdentifier = "PrefixSequence";
builder.InsertParagraph();
Assert.AreEqual(" SEQ PrefixSequence", fieldSeq.GetFieldCode());
// 2 - Inserimento di un campo SEQ che appartiene alla sequenza principale del TOC:
// Questo campo SEQ creerà una voce nel sommario.
// La voce TOC conterrà il paragrafo in cui si trova il campo SEQ e il numero della pagina in cui appare.
// Questa voce mostrerà anche il conteggio a cui si trova attualmente la sequenza del prefisso,
// separato dal numero di pagina dal valore nella proprietà SeqenceSeparator del TOC.
// Il conteggio "PrefixSequence" è pari a 1, questo campo SEQ della sequenza principale è a pagina 2,
// e il separatore è ">", quindi la voce visualizzerà "1>2".
builder.Write("First TOC entry, MySequence #");
fieldSeq = (FieldSeq)builder.InsertField(FieldType.FieldSequence, true);
fieldSeq.SequenceIdentifier = "MySequence";
Assert.AreEqual(" SEQ MySequence", fieldSeq.GetFieldCode());
// Inserisci una pagina, fai avanzare la sequenza del prefisso di 2 e inserisci un campo SEQ per creare successivamente una voce TOC.
// La sequenza del prefisso è ora a 2 e il campo SEQ della sequenza principale è a pagina 3,
// quindi la voce del sommario visualizzerà "2>3" al conteggio delle pagine.
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");
Guarda anche
- class Field
- spazio dei nomi Aspose.Words.Fields
- assemblea Aspose.Words