Bookmarks
Bookmarks
Ez az útmutató bemutatja, hogyan lehet olvasni, beszúrni, navigálni és eltávolítani könyvjelzőket egy Word-dokumentumban a Aspose.Words FOSS for .NET segítségével. A könyvjelző egy elnevezett helyet vagy tartalomtartományt jelöl, amelyet fel lehet keresni, ahova navigálni lehet, vagy amelyet további szerkesztésekhez beszúrási pontként lehet használni. A Aspose.Words FOSS for .NET a könyvjelzőket a Bookmark, BookmarkStart és BookmarkEnd osztályokkal képviseli, és DocumentBuilder metódusokat biztosít a létrehozásukhoz és megtalálásukhoz a dokumentum szerkesztése vagy írása közben.
Könyvjelzők olvasása
Minden Range a tartalmazott könyvjelzőket a Bookmarks tulajdonságon keresztül teszi elérhetővé, amely egy BookmarkCollection-t ad vissza. Mivel a Document maga is egy Range-t tesz elérhetővé, a doc.Range.Bookmarks visszaadja a dokumentum összes könyvjelzőjét. Egy adott könyvjelzőt név szerint a BookmarkCollection indexerrel – bookmarks[bookmarkName] – lehet felkeresni, a létező mennyiséget a Count segítségével ellenőrizni, vagy a teljes gyűjteményt a GetEnumerator() segítségével bejárni. Minden Bookmark a Name-jét és a körülötte lévő szöveget a Text segítségével teszi elérhetővé.
Könyvjelzők beszúrása DocumentBuilder használatával
A DocumentBuilder a szokásos módja a könyvjelzők létrehozásának dokumentum írása közben. Hívja meg a StartBookmark(bookmarkName)-et a tartalom beszúrása előtt, majd a EndBookmark(bookmarkName)-t utána – a builder minden közte írt szöveget a könyvjelzővel ellátott tartományként csomagolja. Táblázatoszlopok tartományához használja a StartColumnBookmark(bookmarkName) és EndColumnBookmark(bookmarkName) elemeket; a keletkező Bookmark.IsColumn true, a FirstColumn és LastColumn azonosítják a megjelölt oszloptartományt. A builder áthelyezéséhez egy meglévő könyvjelzőre további szerkesztésekhez, hívja meg a MoveToBookmark(bookmarkName)-et, vagy a MoveToBookmark(bookmarkName, isStart, isAfter) túlterhelést, hogy szabályozza, a könyvjelző melyik végére kerüljön a kurzor.
Könyvjelző szerkezete a dokumentumfában
A könyvjelző a dokumentumfában egy csomópárként jelenik meg: BookmarkStart és BookmarkEnd, mindkettő BookmarkStart(doc, name) / BookmarkEnd(doc, name) formájában építve. Mindegyik visszahivatkozik a logikai Bookmark objektumára — BookmarkStart.Bookmark adja vissza, és a Bookmark viszont felmutatja a BookmarkStart és BookmarkEnd tulajdonságokat, amelyek a két határcsomópontjára mutatnak. Mivel a BookmarkStart és a BookmarkEnd szokásos csomópontok, támogatják a szabványos csomópontműveleteket, mint például GetText(), Clone(isCloneChildren) és GetAncestor(ancestorType), és a fát bejárva megtalálhatók, akárcsak bármely más csomóponttípus.
Könyvjelzők eltávolítása
Hívd meg a Bookmark.Remove() függvényt, hogy töröld egy könyvjelző kezdő- és zárójelölőit — ez a könyvjelzőt maga eltávolítja, nem a körülötte lévő dokumentumtartalmat. Könyvjelzők tömeges eltávolításához használd a BookmarkCollection.Remove(bookmark), Remove(bookmarkName), RemoveAt(index) vagy Clear() függvényeket, hogy egyben eltüntess minden könyvjelzőt az adott tartományban.
Tippek és bevált gyakorlatok
- Előnyben részesítsd a
BookmarkCollectionindexert (bookmarks["BookmarkName"]) a kézi iterációval szemben, ha már ismered a célkönyvjelző nevét. - Mindig párosíts egy
StartBookmark(name)hívást egy megfelelőEndBookmark(name)hívással, ugyanazzal a névvel — a nem párosított hívás a könyvjelzőt hiányossá teszi. - Ellenőrizd a
Bookmark.IsColumnértékét, mielőtt aFirstColumnvagyLastColumntulajdonságot olvasnád — ez a két tulajdonság csak olyan oszlopkönyvjelzők esetén értelmezhető, amelyeket aStartColumnBookmark/EndColumnBookmarkhozott létre. - A
Bookmark.Remove()csak a könyvjelzőjelölőket törli, nem a körülötte lévő szöveget, így egy könyvjelző eltávolítása soha nem törli a dokumentumtartalmat. - Használd a
DocumentBuilder.MoveToBookmark()parancsot, hogy a szerkesztő kurzorát egy ismert helyre ugorja, ahelyett, hogy manuálisan keresné a csomópontfában aBookmarkStartelemet.
Általános problémák
| Probléma | Ok | Javítás |
|---|---|---|
BookmarkCollection indexer null értéket ad vissza egy névkeresésnél | A könyvjelző neve nem létezik a keresett tartományban | Listázza először a neveket a(z) GetEnumerator() segítségével, hogy megerősítse a pontos, kis- és nagybetűkre érzékeny nevet |
| A beillesztett tartalom nincs könyvjelzőzve | EndBookmark() soha nem lett meghívva, vagy más névvel lett meghívva, mint StartBookmark() | Mindig párosítsa a StartBookmark(name) elemet a EndBookmark(name) elemmel azonos névkarakterlánc használatával |
| Az oszlop könyvjelző adatai hibásnak tűnnek | FirstColumn/LastColumn olvasása anélkül, hogy először ellenőrizné a IsColumn | Csak akkor értelmezze a FirstColumn/LastColumn értéket, ha a Bookmark.IsColumn true |
FAQ
Hogyan szerezhetem meg egy dokumentum összes könyvjelzőjét?
Olvasd a doc.Range.Bookmarks függvényt, amely egy BookmarkCollection objektumot ad vissza, ami az egész dokumentumot lefedi.
Létrehozhatok könyvjelzőt egy táblázat részére oszlop szerint ahelyett, hogy szövegtartomány alapján?
Igen — használd a DocumentBuilder.StartColumnBookmark(bookmarkName) és a EndColumnBookmark(bookmarkName) elemeket. A keletkezett könyvjelzőben a IsColumn értéke true lesz, a FirstColumn/LastColumn pedig az oszloptartományt jelöli.
A könyvjelző eltávolítása törli a jelölt szöveget?
Nem. Bookmark.Remove() csak a BookmarkStart/BookmarkEnd jelző csomópontokat távolítja el; a közötti dokumentumtartalom érintetlen marad.
Hogyan mozgathatom a DocumentBuilder kurzort egy meglévő könyvjelzőhöz?
Hívd meg a DocumentBuilder.MoveToBookmark(bookmarkName)-t, vagy a MoveToBookmark(bookmarkName, isStart, isAfter)-t, hogy szabályozd, a kurzor a könyvjelző elejére vagy végére kerüljön.
Mi a különbség a BookmarkCollection.Remove() túlterhelések között?
Remove(bookmark) egy Bookmark objektumot vár, a Remove(bookmarkName) a nevét, a RemoveAt(index) pedig a gyűjteményben betöltött helyét – mindhárom egyetlen könyvjelzőt távolít el, míg a Clear() az összes könyvjelzőt a gyűjteményben.
API Reference Összefoglaló
| Osztály / Metódus | Leírás |
|---|---|
Bookmark | Egyetlen könyvjelzőt reprezentál; kitetti a Name, Text, IsColumn, FirstColumn, LastColumn és Remove() elemeket |
BookmarkCollection | Könyvjelzők egy Range-ban; indexelő név szerint, Remove(), RemoveAt(), Clear(), Count |
BookmarkStart / BookmarkEnd | Dokumentumcsomópontok, amelyek egy könyvjelző határait jelölik; visszahivatkozás a Bookmark.BookmarkStart/Bookmark.BookmarkEnd segítségével |
Range.Bookmarks | Visszaadja a BookmarkCollection értékét egy adott tartományra, beleértve a doc.Range.Bookmarks értékét a teljes dokumentumra |
DocumentBuilder.StartBookmark() / EndBookmark() | Csomagolja a beillesztett tartalmat egy névvel ellátott könyvjelzőbe |
DocumentBuilder.StartColumnBookmark() / EndColumnBookmark() | Jelöljön meg egy táblázatoszlopok tartományát könyvjelzőként |
DocumentBuilder.MoveToBookmark() | A builder kurzorát egy meglévő könyvjelzőre helyezi |