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 BookmarkCollection indexert (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 a FirstColumn vagy LastColumn tulajdonságot olvasnád — ez a két tulajdonság csak olyan oszlopkönyvjelzők esetén értelmezhető, amelyeket a StartColumnBookmark/EndColumnBookmark hozott 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 a BookmarkStart elemet.

Általános problémák

ProblémaOkJavítás
BookmarkCollection indexer null értéket ad vissza egy névkeresésnélA könyvjelző neve nem létezik a keresett tartománybanListá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őzveEndBookmark() 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űnnekFirstColumn/LastColumn olvasása anélkül, hogy először ellenőrizné a IsColumnCsak 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ódusLeírás
BookmarkEgyetlen könyvjelzőt reprezentál; kitetti a Name, Text, IsColumn, FirstColumn, LastColumn és Remove() elemeket
BookmarkCollectionKönyvjelzők egy Range-ban; indexelő név szerint, Remove(), RemoveAt(), Clear(), Count
BookmarkStart / BookmarkEndDokumentumcsomópontok, amelyek egy könyvjelző határait jelölik; visszahivatkozás a Bookmark.BookmarkStart/Bookmark.BookmarkEnd segítségével
Range.BookmarksVisszaadja 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

Lásd még:

 Magyar