Arbeiten mit Inhaltsverzeichnissen
Häufig arbeiten Sie mit Dokumenten, die ein Inhaltsverzeichnis (TOC) enthalten. Mit Aspose.Words können Sie Ihr eigenes Inhaltsverzeichnis einfügen oder das vorhandene Inhaltsverzeichnis im Dokument mit nur wenigen Codezeilen vollständig neu erstellen.
In diesem Artikel wird beschrieben, wie Sie mit dem Inhaltsverzeichnisfeld arbeiten und veranschaulichen:
- So fügen Sie eine brandneue TOC ein.
- Aktualisieren Sie neue oder vorhandene TOCs im Dokument.
- Geben Sie Schalter an, um die Formatierung und die Gesamtstruktur von TOC zu steuern.
- So ändern Sie die Stile und das Erscheinungsbild des Inhaltsverzeichnisses.
- So entfernen Sie ein ganzes
TOC
-Feld zusammen mit allen Einträgen aus dem Dokument.
Inhaltsverzeichnis programmgesteuert einfügen
Sie können ein TOC
-Feld (Inhaltsverzeichnis) an der aktuellen Position in das Dokument einfügen, indem Sie die InsertTableOfContents -Methode aufrufen.
Ein Inhaltsverzeichnis in einem Word-Dokument kann auf verschiedene Arten erstellt und mit einer Vielzahl von Optionen formatiert werden. Die Feldschalter, die Sie an die Methode übergeben, steuern die Art und Weise, wie die Tabelle in Ihrem Dokument erstellt und angezeigt wird.
Die Standardschalter, die in einer in Microsoft Word eingefügten TOC
verwendet werden, sind "\o “1-3 \h \z \u”. Beschreibungen dieser Schalter sowie eine Liste der unterstützten Schalter finden Sie später im Artikel. Sie können entweder diese Anleitung verwenden, um die richtigen Schalter zu erhalten, oder wenn Sie bereits ein Dokument haben, das die gewünschten ähnlichen TOC
enthält, können Sie Feldcodes (ALT+F9) anzeigen und die Schalter direkt aus dem Feld kopieren.
Das folgende Codebeispiel zeigt, wie Sie ein Inhaltsverzeichnisfeld in ein Dokument einfügen:
Das folgende Codebeispiel zeigt, wie Sie ein Inhaltsverzeichnis (TOC) mit Überschriftenstilen als Einträge in ein Dokument einfügen:
Der Code zeigt, dass das neue Inhaltsverzeichnis in ein leeres Dokument eingefügt wird. Die DocumentBuilder -Klasse wird dann verwendet, um einige Beispielinhaltsformatierungen mit den entsprechenden Überschriftenstilen einzufügen, die verwendet werden, um den Inhalt zu markieren, der in TOC aufgenommen werden soll. Die nächsten Zeilen füllen dann die TOC
aus, indem Sie die Felder und das Seitenlayout des Dokuments aktualisieren.
TOC
finden, jedoch ohne sichtbaren Inhalt. Dies liegt daran, dass das Feld TOC
eingefügt wurde, aber noch nicht ausgefüllt ist, bis es im Dokument aktualisiert wurde. Weitere Informationen dazu finden Sie im nächsten Abschnitt.
Inhaltsverzeichnis aktualisieren
Mit Aspose.Words können Sie eine TOC
mit nur wenigen Codezeilen vollständig aktualisieren. Dies kann getan werden, um eine neu eingefügte TOC
zu füllen oder eine vorhandene TOC
zu aktualisieren, nachdem Änderungen am Dokument vorgenommen wurden.
Die folgenden zwei Methoden müssen verwendet werden, um die TOC
-Felder im Dokument zu aktualisieren:
Bitte beachten Sie, dass diese beiden Aktualisierungsmethoden in dieser Reihenfolge aufgerufen werden müssen. Wenn umgekehrt, wird das Inhaltsverzeichnis ausgefüllt, aber es werden keine Seitenzahlen angezeigt. Es können beliebig viele verschiedene TOCs aktualisiert werden. Diese Methoden aktualisieren automatisch alle im Dokument gefundenen TOCs.
Das folgende Codebeispiel zeigt, wie TOC
-Felder im Dokument durch Aufrufen von Feldaktualisierungen vollständig neu erstellt werden:
Der erste Aufruf von Document.updateFields() erstellt die TOC
, alle Texteinträge werden ausgefüllt und die TOC
erscheint fast vollständig. Es fehlen nur noch die Seitenzahlen, die vorerst mit “?” angezeigt werden.
Der zweite Aufruf von Document.updatePageLayout() erstellt das Layout des Dokuments im Speicher. Dies muss getan werden, um die Seitenzahlen der Einträge zu erfassen. Die aus diesem Aufruf berechneten korrekten Seitenzahlen werden dann in die TOC eingefügt.
Verwenden Sie Schalter, um das Verhalten des Inhaltsverzeichnisses zu steuern
Wie bei jedem anderen Feld kann das Feld TOC
Schalter akzeptieren, die im Feldcode definiert sind, der steuert, wie das Inhaltsverzeichnis erstellt wird. Bestimmte Schalter werden verwendet, um zu steuern, welche Einträge enthalten sind und auf welcher Ebene, während andere verwendet werden, um das Erscheinungsbild von TOC zu steuern. Schalter können miteinander kombiniert werden, um ein komplexes Inhaltsverzeichnis zu erstellen.
Standardmäßig sind diese obigen Schalter enthalten, wenn eine Standard TOC
in das Dokument eingefügt wird. Eine TOC
ohne Schalter enthält Inhalte aus den integrierten Überschriftenstilen (als ob der Schalter \O gesetzt wäre).
Die verfügbaren TOC
-Switches, die von Aspose.Words unterstützt werden, sind unten aufgeführt und ihre Verwendung wird detailliert beschrieben. Sie können je nach Typ in separate Abschnitte unterteilt werden. Die Schalter im ersten Abschnitt definieren, welcher Inhalt in TOC
aufgenommen werden soll, und die Schalter im zweiten Abschnitt steuern das Erscheinungsbild von TOC.
Wenn ein Switch hier nicht aufgeführt ist, wird er derzeit nicht unterstützt. Alle Switches werden in zukünftigen Versionen unterstützt. Wir fügen jedem Release weitere Unterstützung hinzu.
Eingangsmarkierungsschalter
Schalter | Beschreibung |
---|---|
Heading Styles (\O Schalter) |
Dieser Schalter definiert, dass die
|
Outline Levels (\U Schalter) |
Jeder Absatz kann unter Absatzoptionen eine Gliederungsebene definieren.
Beachten Sie, dass integrierte Überschriftenstile wie Heading 1 eine Gliederungsebene haben, die in den Stileinstellungen obligatorisch festgelegt werden muss.
|
Custom Styles (\T Schalter) |
Mit diesem Schalter können benutzerdefinierte Stile verwendet werden, wenn Einträge gesammelt werden, die in TOC verwendet werden sollen. Dies wird häufig in Verbindung mit dem Schalter \O verwendet, um benutzerdefinierte Stile zusammen mit integrierten Überschriftenstilen in TOC einzuschließen.
verwendet Inhalte, die mit CustomHeading1 als Inhalt der Ebene 1 in |
TC-Felder verwenden (\F und \L Schalter) |
In älteren Versionen von Microsoft Word war die einzige Möglichkeit, eine Diese Felder können wie jedes andere Feld an beliebiger Stelle in ein Dokument eingefügt werden und werden durch die
enthält nur TC Felder wie
Das Feld
– \F - Oben erklärt. – \L - Definiert, auf welcher Ebene in - |
Aussehen Bezogene Schalter
Schalter | Beschreibung |
---|---|
Omit Page Numbers (\N Schalter) |
Dieser Schalter wird verwendet, um Seitenzahlen für bestimmte Ebenen von TOC auszublenden. Sie können beispielsweise definieren
und die Seitenzahlen auf den Einträgen der Ebenen 3 und vier werden zusammen mit den Führungspunkten (falls vorhanden) ausgeblendet. Um nur eine Ebene anzugeben, sollte weiterhin ein Bereich verwendet werden, z. B. schließt “1-1” Seitenzahlen nur für die erste Ebene aus. |
Als Hyperlinks einfügen (\H Schalter) |
Dieser Schalter gibt an, dass |
Set Separator Character (\P Schalter) |
Mit diesem Schalter kann der Inhalt, der den Titel des Eintrags und die Seitennummerierung trennt, einfach in TOC geändert werden. Das zu verwendende Trennzeichen sollte nach diesem Schalter angegeben und in Sprachmarken eingeschlossen werden. |
Preserve Tab Entries (\W Schalter) |
Mit diesem Schalter wird festgelegt, dass alle Einträge mit einem Tabulatorzeichen, z. B. eine Überschrift mit einem Tabulator am Zeilenende, beim Auffüllen von TOC als richtiges Tabulatorzeichen beibehalten werden. Dies bedeutet, dass die Funktion des Tabulatorzeichens in |
Preserve New Line Entries (\X Schalter) |
Ähnlich wie bei der obigen Option gibt diese Option an, dass Überschriften, die sich über mehrere Zeilen erstrecken (mit Zeilenumbrüchen, nicht mit separaten Absätzen), so beibehalten werden, wie sie im generierten TOC enthalten sind. Beispielsweise kann eine Überschrift, die über mehrere Zeilen verteilt werden soll, das Zeilenumbruchzeichen (Strg + Eingabetaste oder |
TC Felder einfügen
Sie können ein neues TC -Feld an der aktuellen Position von DocumentBuilder
einfügen, indem Sie die DocumentBuilder.InsertField
-Methode aufrufen und den Feldnamen zusammen mit den erforderlichen Schaltern als “TC” angeben.
Das folgende Codebeispiel zeigt, wie Sie ein TC
-Feld mit DocumentBuilder in das Dokument einfügen.
Oft ist eine bestimmte Textzeile für die TOC
vorgesehen und mit einem TC
-Feld gekennzeichnet. Der einfache Weg, dies in MS Word zu tun, besteht darin, den Text zu markieren und ALT+SHIFT+O zu drücken. Dadurch wird automatisch ein TC
-Feld mit dem ausgewählten Text erstellt. Die gleiche Technik kann durch Code erreicht werden. Der folgende Code findet Text, der der Eingabe entspricht, und fügt ein TC
-Feld an derselben Position wie der Text ein. Der Code basiert auf der gleichen Technik, die im Artikel verwendet wird. Das folgende Codebeispiel zeigt, wie Sie ein TC
-Feld am Text in einem Dokument suchen und einfügen.
Ändern eines Inhaltsverzeichnisses
Ändern der Formatierung von Stilen
Die Formatierung von Einträgen in TOC
verwendet nicht die ursprünglichen Stile der markierten Einträge, stattdessen wird jede Ebene mit einem äquivalenten TOC
-Stil formatiert. Beispielsweise ist die erste Ebene in TOC
mit dem Stil TOC1 formatiert, die zweite Ebene mit dem Stil TOC2 usw. Dies bedeutet, dass diese Stile geändert werden müssen, um das Aussehen von TOC
zu ändern. In Aspose.Words werden diese Stile durch die gebietsschemaunabhängigen StyleIdentifier.TOC1
bis StyleIdentifier.TOC9
dargestellt und können mit diesen Bezeichnern aus der Document.Styles
-Sammlung abgerufen werden.
Sobald der entsprechende Stil des Dokuments abgerufen wurde, kann die Formatierung für diesen Stil geändert werden. Alle Änderungen an diesen Stilen werden automatisch in der TOCs im Dokument angezeigt.
Im folgenden Codebeispiel wird eine Formatierungseigenschaft geändert, die im Stil TOC
der ersten Ebene verwendet wird.
Es ist auch nützlich zu beachten, dass jede direkte Formatierung eines Absatzes (definiert im Absatz selbst und nicht im Stil), die in TOC
aufgenommen werden soll, in den Eintrag in TOC kopiert wird. Beispiel: Wenn der Stil Heading 1 verwendet wird, um Inhalte für TOC
zu markieren, und dieser Stil fett formatiert ist, während auf den Absatz auch direkt kursive Formatierungen angewendet werden. Der resultierende TOC
-Eintrag wird nicht fett gedruckt, da dies Teil der Stilformatierung ist, jedoch kursiv, da dies direkt im Absatz formatiert ist.
Sie können auch die Formatierung der Trennzeichen zwischen den einzelnen Einträgen und der Seitenzahl steuern. Standardmäßig ist dies eine gepunktete Linie, die mit einem Tabulatorzeichen und einem rechten Tabulator in der Nähe des rechten Randes über die Seitennummerierung verteilt wird.
Mithilfe der Style
-Klasse, die für die bestimmte TOC
-Ebene abgerufen wurde, die Sie ändern möchten, können Sie auch ändern, wie diese im Dokument angezeigt werden.
Um die Darstellung zu ändern, muss zuerst Style.ParagraphFormat
aufgerufen werden, um die Absatzformatierung für den Stil abzurufen. Daraus können die Tabstopps durch Aufruf von ParagraphFormat.TabStops
abgerufen und der entsprechende Tabstopp geändert werden. Mit derselben Technik kann die Registerkarte selbst verschoben oder ganz entfernt werden.
Das folgende Codebeispiel zeigt, wie Sie die Position des rechten Tabstopps in TOC
-bezogenen Absätzen ändern.
Entfernen eines Inhaltsverzeichnisses aus dem Dokument
Ein Inhaltsverzeichnis kann aus dem Dokument entfernt werden, indem alle Knoten entfernt werden, die zwischen dem Knoten FieldStart
und FieldEnd des Felds TOC
gefunden wurden.
Der folgende Code zeigt dies. Das Entfernen des Felds TOC
ist einfacher als ein normales Feld, da wir verschachtelte Felder nicht verfolgen. Stattdessen überprüfen wir, ob der FieldEnd
-Knoten vom Typ FieldType.FieldTOC
ist, was bedeutet, dass wir auf das Ende des aktuellen TOC gestoßen sind. Diese Technik kann in diesem Fall verwendet werden, ohne sich um verschachtelte Felder kümmern zu müssen, da wir davon ausgehen können, dass jedes ordnungsgemäß formatierte Dokument kein vollständig verschachteltes TOC
-Feld in einem anderen TOC
-Feld enthält.
Zuerst werden die FieldStart
Knoten von jedem TOC
gesammelt und gespeichert. Die angegebene TOC
wird dann aufgezählt, sodass alle Knoten innerhalb des Felds besucht und gespeichert werden. Die Knoten werden dann aus dem Dokument entfernt. Das folgende Codebeispiel zeigt, wie eine angegebene TOC
aus einem Dokument entfernt wird.
Inhaltsverzeichnis extrahieren
Wenn Sie ein Inhaltsverzeichnis aus einem beliebigen Word-Dokument extrahieren möchten, kann das folgende Codebeispiel verwendet werden.