Yapıtaşları
Yapı Blokları
Bu kılavuz, Aspose.Words FOSS for .NET ile bir belgenin sözlük belgesinde depolanan yeniden kullanılabilir içerik yapı bloklarını nasıl okuyup değiştireceğinizi gösterir. Kütüphane, Document.GlossaryDocument ve BuildingBlock/BuildingBlockCollection nesne modeli aracılığıyla AutoText girişlerini, kapak sayfalarını, üstbilgileri, altbilgileri ve benzeri önceden tanımlanmış içerikleri sunar.
Sözlük Belgesi
Her Document, Document.GlossaryDocument aracılığıyla erişilebilen bir GlossaryDocument taşır — bu da kendisi bir DocumentBase alt sınıfı olup yapı bloklarını tutar. Onun BuildingBlocks özelliği bir BuildingBlockCollection döndürür; FirstBuildingBlock/LastBuildingBlock ise listenin uçlarına hızlı erişim sağlar. Belirli bir yapı bloğunu GetBuildingBlock(gallery, category, name) ile arayın; bu, BuildingBlockGallery, kategori dizesi ve adı birlikte eşleştirir.
Yapı Bloğu Yapısı
BuildingBlock, bir CompositeNode olduğu için, kendi içerik ağacını — Sections (bir SectionCollection), FirstSection ve LastSection — aynı şekilde bir Document bölümleri tutar gibi tutar. Metaveri özellikleri onu tanımlar ve sınıflandırır: Name, Guid, Description, Category, Gallery (bir BuildingBlockGallery — AutoText, CoverPage, Headers, Footers, Tables, Watermarks ve daha onlarca önceden tanımlanmış galeri), Type (bir BuildingBlockType), ve Behavior (bir BuildingBlockBehavior — Content, Paragraph veya Page) içeriğinin bir belgeye eklenirken nasıl birleştirileceğini kontrol eder.
Yapı Blokları Koleksiyonunu Yönetme
BuildingBlockCollection tam koleksiyon düzenlemesini destekler: Add(node), Insert(index, node), Remove(node), RemoveAt(index), Clear(), Contains(node) ve IndexOf(node), ayrıca okuma için ToArray() ve GetEnumerator(). Çünkü bir NodeCollection olduğu için, yapı taşları aynı düğüm API’lerini kullanarak oluşturulabilir, kopyalanabilir ve taşınabilir; belge ağacının diğer herhangi bir bölümü gibi.
Yer Tutucu Metin Yapı Taşları
Yapılandırılmış belge etiketleri, bir yapı taşını yer tutucu içerik olarak referans alabilir: StructuredDocumentTag.Placeholder ve StructuredDocumentTagRangeStart.Placeholder etiket boş olduğunda gösterilen BuildingBlock‘yi, ortak IStructuredDocumentTag.Placeholder özelliği aracılığıyla döndürür.
İpuçları ve En İyi Uygulamalar
GetBuildingBlock(gallery, category, name)‘nin üç argümanını dikkatlice eşleştirin — aynı ad farklı galerilerde veya kategorilerde bulunabilir.- Yalnızca adla her yapı taşını taramak yerine, aradığınız yeniden kullanılabilir içeriğin türünü (
AutoText,CoverPage,Tables,Watermarksvb.) filtrelemek içinBuildingBlockGallerykullanın. BuildingBlockBehavior, eklenen içeriğin çevre belgeyle nasıl birleştirileceğini (Content,ParagraphveyaPage) belirler — bir yapı taşının beklediğiniz gibi ekleyeceğini varsamadan önce bunu kontrol edin.BuildingBlockbirCompositeNodeolduğu için, içeriğini oluştururken veya düzenlerken onu diğer herhangi bir düğüm alt ağacı gibi ele alın —AppendChild,InsertAfterve benzeri düğüm yöntemleri hepsi geçerlidir.
Yaygın Sorunlar
| Sorun | Neden | Düzeltme |
|---|---|---|
GetBuildingBlock() hiçbir şey döndürmez | Galeri, kategori veya ad mevcut bir yapı bloğu ile tam olarak eşleşmiyor | Tam Gallery/Category/Name kombinasyonunu bulmak için GlossaryDocument.BuildingBlocks‘ı numaralandırın |
| Eklenen yapı bloğu içeriği beklenmedik şekilde birleştiriliyor | Behavior (Content/Paragraph/Page) hesaba katılmadı | Eklemeden önce BuildingBlock.Behavior‘i kontrol edin, nasıl birleştirileceğini anlamak için |
| Yapılandırılmış belge etiketi yer tutucu beklenen içeriği göstermiyor | Placeholder, varsayılandan farklı bir BuildingBlock‘e işaret ediyor | StructuredDocumentTag.Placeholder‘i okuyarak hangi yapı taşının gerçekten referans alındığını doğrulayın |
FAQ
Bir belgede yapı taşları nerede depolanır?
Belgenin GlossaryDocument‘ında, Document.GlossaryDocument aracılığıyla erişilebilir ve BuildingBlocks özelliği bir BuildingBlockCollection.
Belirli bir yapı taşını, örneğin bir AutoText girişi olarak, nasıl bulabilirim?
GlossaryDocument.GetBuildingBlock(gallery, category, name)‘ı eşleşen BuildingBlockGallery, kategori ve ad ile çağırın.
Yeni yapı taşlarını programlı olarak ekleyebilir miyim?
Evet — BuildingBlockCollection, bir NodeCollection olduğu için Add(node) ve Insert(index, node) destekler.
BuildingBlockBehavior neyi kontrol eder?
Yapı bloğunun içeriği belgeye eklendiğinde — Content olarak, bir bütün Paragraph olarak ya da bir bütün Page olarak — nasıl birleştirilir.
Bir yapı bloğu, yapılandırılmış belge etiketinin yer tutucu metniyle nasıl ilişkilidir?
StructuredDocumentTag.Placeholder (ve StructuredDocumentTagRangeStart.Placeholder) boş olduğunda bir SDT’nin yer tutucu içeriğini sağlayan BuildingBlock‘yi döndürür.
API Reference Özeti
| Sınıf / Metot | Açıklama |
|---|---|
Document.GlossaryDocument | Belgenin GlossaryDocument‘ı, tüm yapı taşlarını içerir |
GlossaryDocument.BuildingBlocks | BuildingBlockCollection her yapı bloğunun |
GlossaryDocument.GetBuildingBlock() | Galeriden, kategoriden ve isimden bir yapı bloğunu arar |
BuildingBlock | CompositeNode, Name, Gallery, Category, Behavior, Type, Sections içeren |
BuildingBlockCollection | Add(), Insert(), Remove(), Clear(), Contains(), IndexOf() |
BuildingBlockGallery / BuildingBlockType / BuildingBlockBehavior | Yapı bloğunu sınıflandıran enumlar |
StructuredDocumentTag.Placeholder | SDT’nin yer tutucu içeriği olarak kullanılan BuildingBlock |