Bookmarks

Bookmarks

Bu kılavuz, Aspose.Words FOSS for .NET ile bir Word belgesindeki yer imlerini okuma, ekleme, konumuna gitme ve kaldırma yöntemlerini gösterir. Bir yer imi, isimlendirilmiş bir konumu veya içerik aralığını işaretler; böylece aranabilir, konumuna gidilebilir veya sonraki düzenlemeler için ekleme noktası olarak kullanılabilir. Aspose.Words FOSS for .NET, yer imlerini Bookmark, BookmarkStart ve BookmarkEnd sınıflarıyla temsil eder ve belge oluşturma veya düzenleme sırasında bunları oluşturmak ve bulmak için DocumentBuilder yöntemleri sunar.


Yer İmlerini Okuma

Her Range, içindeki yer imlerini Bookmarks özelliği aracılığıyla sunar; bu özellik bir BookmarkCollection döndürür. Document kendisi bir Range sunduğundan, doc.Range.Bookmarks belgedeki tüm yer imlerini verir. Belirli bir yer imini ismiyle BookmarkCollection dizinleyicisi — bookmarks[bookmarkName] — aracılığıyla arayabilir, kaç tane olduğunu Count ile kontrol edebilir veya tüm koleksiyonu GetEnumerator() ile dolaşabilirsiniz. Her Bookmark, Name ve kapsadığı metni Text üzerinden gösterir.


DocumentBuilder ile Yer İmi Ekleme

DocumentBuilder, bir belge oluştururken yer imi yaratmanın yaygın yoludur. İçeriği eklemeden önce StartBookmark(bookmarkName) çağırın, ardından EndBookmark(bookmarkName) çağırın — yapılandırıcı araya yazılan her şeyi yer imi olarak işaretlenmiş bir aralık hâline getirir. Tablo sütunları aralığı için, bunun yerine StartColumnBookmark(bookmarkName) ve EndColumnBookmark(bookmarkName) kullanın; ortaya çıkan Bookmark.IsColumn true olur ve FirstColumn ile LastColumn işaretlenen sütun aralığını tanımlar. Mevcut bir yer iminde düzenlemeye devam etmek için yapılandırıcıyı yeniden konumlandırmak istiyorsanız MoveToBookmark(bookmarkName) çağırın ya da MoveToBookmark(bookmarkName, isStart, isAfter) aşırı yüklemesini kullanarak imlecin yer iminin hangi ucunda başlayacağını kontrol edin.


Belge Ağacındaki Yer İmi Yapısı

Yer imi, belge ağacında BookmarkStart ve BookmarkEnd adlı iki düğüm çifti olarak temsil edilir: her ikisi de BookmarkStart(doc, name) / BookmarkEnd(doc, name) şeklinde oluşturulur. Her biri, mantıksal Bookmark nesnesine geri bağlanır — BookmarkStart.Bookmark onu döndürür ve Bookmark ise BookmarkStart ve BookmarkEnd özelliklerini ortaya çıkararak iki sınır düğümüne işaret eder. BookmarkStart ve BookmarkEnd sıradan düğümler olduğundan, GetText(), Clone(isCloneChildren) ve GetAncestor(ancestorType) gibi standart düğüm işlemlerini destekler ve diğer düğüm türleri gibi ağaçta yürüyerek bulunabilir.


Yer imlerini kaldırma

Tek bir yer iminin başlangıç ve bitiş işaretlerini silmek için Bookmark.Remove() çağırın — bu, yer imini siler, kapsadığı belge içeriğini silmez. Yer imlerini toplu olarak kaldırmak için BookmarkCollection.Remove(bookmark), Remove(bookmarkName), RemoveAt(index) veya Clear() kullanarak aralıktaki tüm yer imlerini bir seferde bırakabilirsiniz.


İpuçları ve En İyi Uygulamalar

  • Hedef yer iminin adını zaten biliyorsanız, manuel yinelemenin yerine BookmarkCollection dizinleyicisini (bookmarks["BookmarkName"]) tercih edin.
  • Her zaman aynı adı kullanan bir StartBookmark(name) çağrısını eşleşen bir EndBookmark(name) çağrısı ile eşleştirin — eşleşmeyen bir çift yer imini eksik bırakır.
  • Bookmark.IsColumn değerini FirstColumn veya LastColumn okumadan önce kontrol edin — bu iki özellik yalnızca StartColumnBookmark/EndColumnBookmark ile oluşturulan sütun yer imleri için anlamlıdır.
  • Bookmark.Remove() yalnızca yer imi işaretçilerini siler, içinde bulunan metni silmez; bu yüzden bir yer imi kaldırıldığında belge içeriği asla silinmez.
  • Builder’ın imlecini bilinen bir konuma atlamak için DocumentBuilder.MoveToBookmark() kullanın; böylece BookmarkStart için düğüm ağacını elle aramak zorunda kalmazsınız.

Sık Karşılaşılan Sorunlar

SorunSebepDüzeltme
BookmarkCollection indeksleyicisi, ad araması için null döndürürAranan aralıkta yer imi adı bulunamadı.Tam ve büyük/küçük harfe duyarlı adı doğrulamak için önce GetEnumerator() aracılığıyla adları listeleyin.
Eklenen içerik yer imiyle işaretlenmemiş.EndBookmark() hiç çağrılmadı ya da StartBookmark() ile aynı olmayan bir adla çağrıldı.Her zaman StartBookmark(name) ile EndBookmark(name) aynı ad dizesiyle eşleştir.
Sütun yer imi verileri hatalı görünüyor.FirstColumn/LastColumn önce IsColumn kontrol edilmeden okunuyor.Yalnızca Bookmark.IsColumn true olduğunda FirstColumn/LastColumn yorumla.

FAQ

Bir belgedeki tüm yer imlerini nasıl alabilirim?

doc.Range.Bookmarks okuyun; bu, tüm belgeyi kapsayan bir BookmarkCollection döndürür.

Bir tabloyu metin aralığı yerine sütun bazında yer imiyle işaretleyebilir miyim?

Evet — DocumentBuilder.StartColumnBookmark(bookmarkName) ve EndColumnBookmark(bookmarkName) kullanın. Oluşan yer iminde IsColumn true olarak ayarlanmıştır; FirstColumn/LastColumn ise sütun aralığını işaretler.

Yer imini kaldırmak, işaretlediği metni siler mi?

Hayır. Bookmark.Remove() yalnızca BookmarkStart/BookmarkEnd işaretleyici düğümlerini kaldırır; aradaki belge içeriği dokunulmaz bırakılır.

Mevcut bir yer imine DocumentBuilder imlecini nasıl taşıyabilirim?

İmlecin yer iminin başlangıcına mı yoksa sonuna mı düşeceğini kontrol etmek için DocumentBuilder.MoveToBookmark(bookmarkName) ya da MoveToBookmark(bookmarkName, isStart, isAfter) çağırın.

BookmarkCollection.Remove() aşırı yüklemeleri arasındaki fark nedir?

Remove(bookmark) bir Bookmark nesnesi alır, Remove(bookmarkName) adını alır ve RemoveAt(index) koleksiyondaki konumunu alır — bu üçü tek bir yer imini kaldırırken, Clear() koleksiyondaki tüm yer imlerini kaldırır.


API Reference Özeti

Sınıf / YöntemAçıklama
BookmarkTek bir yer imini temsil eder; Name, Text, IsColumn, FirstColumn, LastColumn ve Remove() öğelerini sunar.
BookmarkCollectionYer imleri bir Range içinde; ada göre indeksleyici, Remove(), RemoveAt(), Clear(), Count
BookmarkStart / BookmarkEndBelge düğümleri bir yer iminin sınırlarını işaret eder; Bookmark.BookmarkStart/Bookmark.BookmarkEnd aracılığıyla geri bağlanır
Range.BookmarksVerilen bir aralık için BookmarkCollection döndürür, tüm belge için doc.Range.Bookmarks dahil
DocumentBuilder.StartBookmark() / EndBookmark()Eklenen içeriği adlandırılmış bir yer imine sar
DocumentBuilder.StartColumnBookmark() / EndColumnBookmark()Tablo sütunları aralığını yer imi olarak işaretle
DocumentBuilder.MoveToBookmark()Oluşturucunun imlecini mevcut bir yer imine konumlandırır

Ayrıca Bakınız

 Türkçe