Bookmarks

Bookmarks

Deze gids laat zien hoe je bladwijzers kunt lezen, invoegen, er naartoe kunt navigeren en verwijderen in een Word-document met Aspose.Words FOSS voor .NET. Een bladwijzer markeert een benoemde locatie of een bereik van inhoud zodat deze kan worden opgezocht, er naartoe kan worden genavigeerd, of kan worden gebruikt als een invoerpunt voor verdere bewerkingen. Aspose.Words FOSS voor .NET representeert bladwijzers met de Bookmark, BookmarkStart en BookmarkEnd klassen, en biedt DocumentBuilder methoden voor het creëren en vinden ervan tijdens het schrijven of bewerken van een document.


Bladwijzers lezen

Elke Range maakt de bladwijzers die het bevat zichtbaar via de Bookmarks eigenschap, die een BookmarkCollection retourneert. Aangezien Document zelf een Range exposeert, retourneert doc.Range.Bookmarks elke bladwijzer in het document. Zoek een specifieke bladwijzer op naam met de BookmarkCollection indexer — bookmarks[bookmarkName] — controleer hoeveel er bestaan met Count, of doorloop de hele collectie met GetEnumerator(). Elke Bookmark maakt zijn Name en de tekst die het omsluit zichtbaar via Text.


Bladwijzers invoegen met DocumentBuilder

DocumentBuilder is de gebruikelijke manier om bladwijzers te maken tijdens het schrijven van een document. Roep StartBookmark(bookmarkName) aan voordat je inhoud invoegt, en daarna EndBookmark(bookmarkName) — de builder wikkelt alles wat daartussen wordt geschreven als het bladwijzerbereik. Voor een bereik van tabelkolommen, gebruik in plaats daarvan StartColumnBookmark(bookmarkName) en EndColumnBookmark(bookmarkName); de resulterende Bookmark.IsColumn is true, met FirstColumn en LastColumn die het gemarkeerde kolombereik identificeren. Om de builder te verplaatsen naar een bestaande bladwijzer voor verdere bewerkingen, roep MoveToBookmark(bookmarkName) aan, of de overload MoveToBookmark(bookmarkName, isStart, isAfter) om te bepalen aan welk uiteinde van de bladwijzer de cursor wordt geplaatst.


Bladwijzerstructuur in de Documentboom

Een bladwijzer wordt in de documentboom weergegeven als een paar knooppunten: BookmarkStart en BookmarkEnd, beide geconstrueerd als BookmarkStart(doc, name) / BookmarkEnd(doc, name). Elk koppelt terug naar zijn logische Bookmark object — BookmarkStart.Bookmark retourneert het, en Bookmark onthult op zijn beurt de BookmarkStart en BookmarkEnd eigenschappen die naar zijn twee grensknooppunten wijzen. Omdat BookmarkStart en BookmarkEnd gewone knooppunten zijn, ondersteunen ze de standaard knooppuntbewerkingen zoals GetText(), Clone(isCloneChildren) en GetAncestor(ancestorType), en kunnen ze worden gevonden door de boom te doorlopen zoals elk ander knooppunttype.


Bladwijzers verwijderen

Roep Bookmark.Remove() aan om de begin- en eindmarkeringen van één bladwijzer te verwijderen — dit verwijdert de bladwijzer zelf, niet de documentinhoud die ze omsluit. Om bladwijzers in bulk te verwijderen, gebruik BookmarkCollection.Remove(bookmark), Remove(bookmarkName), RemoveAt(index) of Clear() om alle bladwijzers in het bereik in één keer te verwijderen.


Tips en best practices

  • Geef de voorkeur aan de BookmarkCollection indexer (bookmarks["BookmarkName"]) boven handmatige iteratie wanneer je de naam van de doelbladwijzer al kent.
  • Koppel altijd een StartBookmark(name)-aanroep aan een bijpassende EndBookmark(name)-aanroep met dezelfde naam — een niet-overeenkomend paar laat de bladwijzer onvolledig.
  • Controleer Bookmark.IsColumn voordat je FirstColumn of LastColumn leest — die twee eigenschappen zijn alleen zinvol voor kolombladwijzers die zijn aangemaakt met StartColumnBookmark/EndColumnBookmark.
  • Bookmark.Remove() verwijdert alleen de bladwijzermarkeringen, niet de ingesloten tekst, dus het verwijderen van een bladwijzer verwijdert nooit documentinhoud.
  • Gebruik DocumentBuilder.MoveToBookmark() om de cursor van de builder naar een bekende locatie te verplaatsen in plaats van handmatig de knoopboom te doorzoeken naar een BookmarkStart.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
BookmarkCollection indexer retourneert null voor een naamopzoekingDe bladwijzernaam bestaat niet in het bereik dat wordt doorzochtLijst eerst de namen via GetEnumerator() om de exacte, hoofdlettergevoelige naam te bevestigen
Ingevoegde inhoud is niet gebladwijzerdEndBookmark() werd nooit aangeroepen, of werd aangeroepen met een andere naam dan StartBookmark()Match altijd StartBookmark(name) met EndBookmark(name) met dezelfde naamstring
Kolom bookmark-gegevens lijken onjuistFirstColumn/LastColumn gelezen zonder eerst IsColumn te controlerenInterpreteer FirstColumn/LastColumn alleen wanneer Bookmark.IsColumn true is

FAQ

Hoe haal ik alle bladwijzers in een document op?

Lees doc.Range.Bookmarks, die een BookmarkCollection retourneert die het hele document bestrijkt.

Kan ik een deel van een tabel bladwijzeren per kolom in plaats van per tekstbereik?

Ja — gebruik DocumentBuilder.StartColumnBookmark(bookmarkName) en EndColumnBookmark(bookmarkName). De resulterende bladwijzer heeft IsColumn ingesteld op true, met FirstColumn/LastColumn die het kolombereik markeren.

Verwijdert het verwijderen van een bladwijzer de tekst die het markeert?

Nr. Bookmark.Remove() verwijdert alleen de BookmarkStart/BookmarkEnd markerknopen; de documentinhoud daartussen blijft onaangeroerd.

Hoe verplaats ik de DocumentBuilder cursor naar een bestaande bladwijzer?

Roep DocumentBuilder.MoveToBookmark(bookmarkName) aan, of MoveToBookmark(bookmarkName, isStart, isAfter) om te bepalen of de cursor zich aan het begin of einde van de bladwijzer bevindt.

Wat is het verschil tussen de BookmarkCollection.Remove() overloads?

Remove(bookmark) neemt een Bookmark object, Remove(bookmarkName) neemt de naam, en RemoveAt(index) neemt de positie in de collectie — alle drie verwijderen één bladwijzer, terwijl Clear() elke bladwijzer in de collectie verwijdert.


API Reference Samenvatting

Klasse / MethodeBeschrijving
BookmarkStelt één bladwijzer voor; maakt Name, Text, IsColumn, FirstColumn, LastColumn en Remove() beschikbaar
BookmarkCollectionBladwijzers in een Range; indexeer op naam, Remove(), RemoveAt(), Clear(), Count
BookmarkStart / BookmarkEndDocumentknooppunten die de grenzen van een bladwijzer markeren; link terug via Bookmark.BookmarkStart/Bookmark.BookmarkEnd
Range.BookmarksRetourneert de BookmarkCollection voor een gegeven bereik, inclusief doc.Range.Bookmarks voor het hele document
DocumentBuilder.StartBookmark() / EndBookmark()Omsluit ingevoegde inhoud in een benoemde bladwijzer
DocumentBuilder.StartColumnBookmark() / EndColumnBookmark()Markeer een bereik van tabelkolommen als bladwijzer
DocumentBuilder.MoveToBookmark()Plaatst de cursor van de builder op een bestaande bladwijzer

Zie ook

 Nederlands