Elementy budulcowe

Bloki budujące

Ten przewodnik pokazuje, jak odczytywać i modyfikować wielokrotnego użytku bloki budujące treści przechowywane w dokumencie słownika przy użyciu Aspose.Words FOSS dla .NET. Biblioteka udostępnia AutoText wpisy, strony tytułowe, nagłówki, stopki i podobne predefiniowane treści poprzez Document.GlossaryDocument oraz model obiektowy BuildingBlock/BuildingBlockCollection.


Dokument słownika

Każdy Document zawiera GlossaryDocument — dostępny poprzez Document.GlossaryDocument — który jest jednocześnie podklasą DocumentBase przechowującą bloki budujące. Jego właściwość BuildingBlocks zwraca BuildingBlockCollection, przy czym FirstBuildingBlock/LastBuildingBlock zapewniają szybki dostęp do końców listy. Wyszukaj konkretny blok budujący przy użyciu GetBuildingBlock(gallery, category, name), dopasowując jednocześnie jego BuildingBlockGallery, ciąg kategorii i nazwę.


Struktura bloku budującego

BuildingBlock jest CompositeNode, więc posiada własne drzewo treści — Sections (a SectionCollection), FirstSection oraz LastSection — tak jak Document zawiera sekcje. Jego właściwości metadanych identyfikują i klasyfikują go: Name, Guid, Description, Category, Gallery (a BuildingBlockGallery — AutoText, CoverPage, Headers, Footers, Tables, Watermarks i dziesiątki innych predefiniowanych galerii), Type (a BuildingBlockType), oraz Behavior (a BuildingBlockBehavior Content, Paragraph lub Page) kontrolująca, w jaki sposób jej zawartość jest scalana z dokumentem po wstawieniu.


Zarządzanie kolekcją bloków budujących

BuildingBlockCollection obsługuje pełną edycję kolekcji: Add(node), Insert(index, node), Remove(node), RemoveAt(index), Clear(), Contains(node) i IndexOf(node), wraz z ToArray() i GetEnumerator() do odczytu. Ponieważ jest to NodeCollection, bloki budulcowe mogą być tworzone, klonowane i przenoszone przy użyciu tych samych interfejsów API węzłów co każda inna część drzewa dokumentu.


Bloki Budulcowe Tekstu Zastępczego

Strukturalne znaczniki dokumentu mogą odwoływać się do bloku budulcowego jako ich treści zastępczej: StructuredDocumentTag.Placeholder i StructuredDocumentTagRangeStart.Placeholder zwracają oba BuildingBlock wyświetlane, gdy znacznik jest pusty, za pośrednictwem wspólnej własności IStructuredDocumentTag.Placeholder.


Wskazówki i Najlepsze Praktyki

  • Dopasuj trzy argumenty GetBuildingBlock(gallery, category, name) starannie — ta sama nazwa może występować w różnych galeriach lub kategoriach.
  • Użyj BuildingBlockGallery, aby filtrować, jakiego rodzaju treści wielokrotnego użytku szukasz (AutoText, CoverPage, Tables, Watermarks itp.), zamiast przeszukiwać każdy blok budulcowy wyłącznie po nazwie.
  • BuildingBlockBehavior określa, jak wstawiona treść łączy się z otaczającym dokumentem (Content, Paragraph lub Page) — sprawdź to, zanim założysz, że blok budulcowy wstawi się w oczekiwany sposób.
  • Ponieważ BuildingBlock jest CompositeNode, traktuj go jak dowolny inny poddrzewo węzła podczas budowania lub edytowania jego zawartości — AppendChild, InsertAfter i podobne metody węzła mają zastosowanie.

Typowe problemy

ProblemPrzyczynaRozwiązanie
GetBuildingBlock() nie zwraca nicGaleria, kategoria lub nazwa nie pasują dokładnie do istniejącego bloku konstrukcyjnegoWylicz GlossaryDocument.BuildingBlocks, aby znaleźć dokładną kombinację Gallery/Category/Name
Wstawiona zawartość bloku konstrukcyjnego łączy się nieoczekiwanieBehavior (Content/Paragraph/Page) nie został uwzględnionySprawdź BuildingBlock.Behavior przed wstawieniem, aby zrozumieć, jak zostanie scalony
Placeholder znacznika strukturalnego dokumentu nie wyświetla oczekiwanej treściPlaceholder wskazuje na inny BuildingBlock niż zakładanoPrzeczytaj StructuredDocumentTag.Placeholder, aby potwierdzić, który blok budulcowy jest faktycznie odwoływany

FAQ

Gdzie w dokumencie są przechowywane bloki konstrukcyjne?

W GlossaryDocument dokumentu, dostępnym przez Document.GlossaryDocument, którego właściwość BuildingBlocks jest BuildingBlockCollection.

Jak znaleźć określony blok konstrukcyjny, taki jak wpis AutoText?

Wywołaj GlossaryDocument.GetBuildingBlock(gallery, category, name) z pasującym BuildingBlockGallery, kategorią i nazwą.

Czy mogę dodawać nowe bloki konstrukcyjne programowo?

Tak — BuildingBlockCollection obsługuje Add(node) i Insert(index, node), ponieważ jest NodeCollection.

Co kontroluje BuildingBlockBehavior?

Jak zawartość bloku konstrukcyjnego łączy się z dokumentem po wstawieniu — jako Content, cały Paragraph lub cały Page.

Jak blok konstrukcyjny jest związany z tekstem zastępczym znacznika strukturalnego dokumentu?

StructuredDocumentTag.Placeholder (i StructuredDocumentTagRangeStart.Placeholder) zwracają BuildingBlock, które dostarcza zawartość zastępczą SDT, gdy jest pusta.


API Reference Podsumowanie

Klasa / MetodaOpis
Document.GlossaryDocumentGlossaryDocument dokumentu, zawierający wszystkie bloki budulcowe
GlossaryDocument.BuildingBlocksBuildingBlockCollection każdego bloku konstrukcyjnego
GlossaryDocument.GetBuildingBlock()Wyszukuje blok konstrukcyjny według galerii, kategorii i nazwy
BuildingBlockA CompositeNode z Name, Gallery, Category, Behavior, Type, Sections
BuildingBlockCollectionAdd(), Insert(), Remove(), Clear(), Contains(), IndexOf()
BuildingBlockGallery / BuildingBlockType / BuildingBlockBehaviorEnums klasyfikujące element budulcowy
StructuredDocumentTag.PlaceholderTen BuildingBlock używany jako zawartość zastępcza SDT

Zobacz także

 Polski