Bookmarks

Bookmarks

Panduan ini menunjukkan cara membaca, menyisipkan, menavigasi ke, dan menghapus bookmark dalam dokumen Word dengan Aspose.Words FOSS untuk .NET. Sebuah bookmark menandai lokasi atau rentang konten yang diberi nama sehingga dapat dicari, dinavigasi, atau digunakan sebagai titik sisipan untuk penyuntingan lebih lanjut. Aspose.Words FOSS untuk .NET merepresentasikan bookmark dengan kelas Bookmark, BookmarkStart, dan BookmarkEnd, dan menyediakan metode DocumentBuilder untuk membuat dan menemukan mereka saat menulis atau mengedit dokumen.


Membaca Bookmark

Setiap Range mengekspos bookmark yang dimilikinya melalui properti Bookmarks, yang mengembalikan BookmarkCollection. Karena Document sendiri mengekspos Range, doc.Range.Bookmarks mengembalikan semua bookmark dalam dokumen. Cari bookmark tertentu berdasarkan nama dengan indeks BookmarkCollection — bookmarks[bookmarkName] — periksa berapa banyak yang ada dengan Count, atau jelajahi seluruh koleksi dengan GetEnumerator(). Setiap Bookmark mengekspos Name dan teks yang dibungkusnya melalui Text.


Menyisipkan Bookmark dengan DocumentBuilder

DocumentBuilder adalah cara umum untuk membuat bookmark saat menulis dokumen. Panggil StartBookmark(bookmarkName) sebelum menyisipkan konten, kemudian EndBookmark(bookmarkName) setelahnya — pembangun membungkus semua yang ditulis di antara sebagai rentang bookmark. Untuk rentang kolom tabel, gunakan StartColumnBookmark(bookmarkName) dan EndColumnBookmark(bookmarkName) sebagai gantinya; Bookmark.IsColumn yang dihasilkan adalah true, dengan FirstColumn dan LastColumn mengidentifikasi rentang kolom yang ditandai. Untuk memindahkan builder ke bookmark yang sudah ada untuk penyuntingan lebih lanjut, panggil MoveToBookmark(bookmarkName), atau overload MoveToBookmark(bookmarkName, isStart, isAfter) untuk mengontrol ujung bookmark mana yang akan ditempati kursor.


Struktur Bookmark dalam Pohon Dokumen

Bookmark direpresentasikan dalam pohon dokumen sebagai sepasang node: BookmarkStart dan BookmarkEnd, keduanya dibangun sebagai BookmarkStart(doc, name) / BookmarkEnd(doc, name). Masing-masing menghubungkan kembali ke objek Bookmark logisnya — BookmarkStart.Bookmark mengembalikannya, dan Bookmark pada gilirannya mengekspos properti BookmarkStart dan BookmarkEnd yang menunjuk ke dua node batasnya. Karena BookmarkStart dan BookmarkEnd adalah node biasa, mereka mendukung operasi node standar seperti GetText(), Clone(isCloneChildren), dan GetAncestor(ancestorType), dan dapat ditemukan dengan menelusuri pohon seperti jenis node lainnya.


Menghapus Bookmark

Panggil Bookmark.Remove() untuk menghapus penanda awal dan akhir satu bookmark — ini menghapus bookmark itu sendiri, bukan konten dokumen yang dibungkusnya. Untuk menghapus bookmark secara massal, gunakan BookmarkCollection.Remove(bookmark), Remove(bookmarkName), RemoveAt(index), atau Clear() untuk menghilangkan semua bookmark dalam rentang sekaligus.


Tips dan Praktik Terbaik

  • Lebih pilih indeks BookmarkCollection (bookmarks["BookmarkName"]) daripada iterasi manual ketika Anda sudah mengetahui nama bookmark target.
  • Selalu pasangkan pemanggilan StartBookmark(name) dengan pemanggilan EndBookmark(name) yang cocok menggunakan nama yang sama — pasangan yang tidak cocok membuat bookmark tidak lengkap.
  • Periksa Bookmark.IsColumn sebelum membaca FirstColumn atau LastColumn — dua properti tersebut hanya bermakna untuk bookmark kolom yang dibuat dengan StartColumnBookmark/EndColumnBookmark.
  • Bookmark.Remove() menghapus hanya penanda bookmark, bukan teks yang dibungkusnya, sehingga menghapus bookmark tidak pernah menghapus konten dokumen.
  • Gunakan DocumentBuilder.MoveToBookmark() untuk melompat kursor pembangun ke lokasi yang diketahui alih-alih mencari secara manual pohon node untuk BookmarkStart.

Masalah Umum

MasalahPenyebabPerbaikan
BookmarkCollection pengindeks mengembalikan null untuk pencarian namaNama bookmark tidak ada dalam rentang yang sedang dicariDaftar nama terlebih dahulu melalui GetEnumerator() untuk mengonfirmasi nama yang tepat, sensitif huruf
Konten yang disisipkan tidak dibookmarkEndBookmark() tidak pernah dipanggil, atau dipanggil dengan nama yang berbeda dari StartBookmark()Selalu cocokkan StartBookmark(name) dengan EndBookmark(name) menggunakan string nama yang identik
Data bookmark kolom tampak salahFirstColumn/LastColumn dibaca tanpa memeriksa IsColumn terlebih dahuluHanya interpretasikan FirstColumn/LastColumn ketika Bookmark.IsColumn adalah true

FAQ

Bagaimana cara mendapatkan semua bookmark dalam sebuah dokumen?

Baca doc.Range.Bookmarks, yang mengembalikan BookmarkCollection yang mencakup seluruh dokumen.

Apakah saya dapat menandai bagian tabel berdasarkan kolom alih-alih rentang teks?

Ya — gunakan DocumentBuilder.StartColumnBookmark(bookmarkName) dan EndColumnBookmark(bookmarkName). Bookmark yang dihasilkan memiliki IsColumn diatur ke true, dengan FirstColumn/LastColumn menandai rentang kolom.

Apakah menghapus bookmark menghapus teks yang ditandainya?

No. Bookmark.Remove() hanya menghapus node penanda BookmarkStart/BookmarkEnd; konten dokumen di antara tetap tidak tersentuh.

Bagaimana cara memindahkan kursor DocumentBuilder ke penanda buku yang sudah ada?

Panggil DocumentBuilder.MoveToBookmark(bookmarkName), atau MoveToBookmark(bookmarkName, isStart, isAfter) untuk mengendalikan apakah kursor berada di awal atau akhir penanda buku.

Apa perbedaan antara overload BookmarkCollection.Remove()?

Remove(bookmark) menerima objek Bookmark, Remove(bookmarkName) menerima namanya, dan RemoveAt(index) menerima posisinya dalam koleksi — ketiganya menghapus satu penanda buku, sementara Clear() menghapus semua penanda buku dalam koleksi.


API Reference Ringkasan

Kelas / MetodeDeskripsi
BookmarkMewakili satu bookmark; mengekspos Name, Text, IsColumn, FirstColumn, LastColumn, dan Remove()
BookmarkCollectionBookmark dalam Range; pengindeks berdasarkan nama, Remove(), RemoveAt(), Clear(), Count
BookmarkStart / BookmarkEndNode dokumen yang menandai batas bookmark; tautkan kembali melalui Bookmark.BookmarkStart/Bookmark.BookmarkEnd
Range.BookmarksMengembalikan BookmarkCollection untuk rentang tertentu, termasuk doc.Range.Bookmarks untuk seluruh dokumen
DocumentBuilder.StartBookmark() / EndBookmark()Bungkus konten yang disisipkan dalam bookmark bernama
DocumentBuilder.StartColumnBookmark() / EndColumnBookmark()Tandai rentang kolom tabel sebagai bookmark
DocumentBuilder.MoveToBookmark()Menempatkan kursor pembuat pada bookmark yang ada

Lihat Juga

 Bahasa Indonesia