Stavební bloky

Stavební bloky

Tento průvodce ukazuje, jak číst a upravovat opakovaně použitelné stavební bloky obsahu uložené v glosáři dokumentu s Aspose.Words FOSS pro .NET. Knihovna zpřístupňuje AutoText položky, obálky, záhlaví, zápatí a podobný předdefinovaný obsah prostřednictvím Document.GlossaryDocument a objektového modelu BuildingBlock/BuildingBlockCollection.


Dokument glosáře

Každý Document obsahuje GlossaryDocument — přístupný přes Document.GlossaryDocument — který je sám podtřídou DocumentBase a obsahuje stavební bloky. Jeho vlastnost BuildingBlocks vrací BuildingBlockCollection, přičemž FirstBuildingBlock/LastBuildingBlock poskytují rychlý přístup k koncům seznamu. Vyhledejte konkrétní stavební blok pomocí GetBuildingBlock(gallery, category, name), který odpovídá jeho BuildingBlockGallery, řetězci kategorie a názvu dohromady.


Struktura stavebního bloku

BuildingBlock je CompositeNode, takže obsahuje vlastní strom obsahu — Sections (a SectionCollection), FirstSection a LastSection — stejným způsobem, jakým Document obsahuje sekce. Jeho metadata vlastnosti jej identifikují a klasifikují: Name, Guid, Description, Category, Gallery (a BuildingBlockGallery — AutoText, CoverPage, Headers, Footers, Tables, Watermarks a desítky dalších předdefinovaných galerií), Type (a BuildingBlockType), a Behavior (a BuildingBlockBehavior z Content, Paragraph nebo Page) řídící, jak se jeho obsah sloučí do dokumentu při vložení.


Správa kolekce stavebních bloků

BuildingBlockCollection podporuje úplnou úpravu kolekce: Add(node), Insert(index, node), Remove(node), RemoveAt(index), Clear(), Contains(node) a IndexOf(node), spolu s ToArray() a GetEnumerator() pro čtení. Protože jde o NodeCollection, lze stavební bloky vytvářet, klonovat a přesouvat pomocí stejných API uzlů jako jakákoli jiná část stromu dokumentu.


Stavební bloky zástupného textu

Strukturované značky dokumentu mohou odkazovat na stavební blok jako svůj zástupný obsah: StructuredDocumentTag.Placeholder a StructuredDocumentTagRangeStart.Placeholder oba vrací BuildingBlock zobrazený, když je značka prázdná, prostřednictvím sdílené vlastnosti IStructuredDocumentTag.Placeholder.


Tipy a osvědčené postupy

  • Pečlivě sladěte tři argumenty GetBuildingBlock(gallery, category, name) — stejný název může existovat v různých galeriích nebo kategoriích.
  • Použijte BuildingBlockGallery k filtrování typu opakovatelného obsahu, který hledáte (AutoText, CoverPage, Tables, Watermarks atd.), místo abyste prohledávali každý stavební blok pouze podle názvu.
  • BuildingBlockBehavior určuje, jak se vložený obsah sloučí s okolním dokumentem (Content, Paragraph nebo Page) — ověřte to, než předpokládáte, že stavební blok se vloží tak, jak očekáváte.
  • Protože BuildingBlock je CompositeNode, zacházejte s ním jako s jakýmkoli jiným podstromem uzlu při vytváření nebo úpravě jeho obsahu — AppendChild, InsertAfter a podobné metody uzlu jsou všechny použitelné.

Časté problémy

ProblémPříčinaOprava
GetBuildingBlock() nevrací nicGalerie, kategorie nebo název neodpovídá přesně existujícímu stavebnímu blokuVyjmenujte GlossaryDocument.BuildingBlocks k nalezení přesné kombinace Gallery/Category/Name
Vložený obsah stavebního bloku se neočekávaně sloučíBehavior (Content/Paragraph/Page) není zohledněnoZkontrolujte BuildingBlock.Behavior před vložením, abyste pochopili, jak se sloučí
Zástupný znak strukturované značky dokumentu nezobrazuje očekávaný obsahPlaceholder ukazuje na jiný BuildingBlock, než se předpokládaloPřečtěte StructuredDocumentTag.Placeholder, abyste potvrdili, který stavební blok je ve skutečnosti odkazován

FAQ

Kde jsou stavební bloky uloženy v dokumentu?

V GlossaryDocument dokumentu, přístupném přes Document.GlossaryDocument, jehož vlastnost BuildingBlocks je BuildingBlockCollection.

Jak najdu konkrétní stavební blok, například AutoText záznam?

Zavolejte GlossaryDocument.GetBuildingBlock(gallery, category, name) s odpovídajícím BuildingBlockGallery, kategorií a názvem.

Mohu programově přidávat nové stavební bloky?

Ano — BuildingBlockCollection podporuje Add(node) a Insert(index, node), protože je to NodeCollection.

Co BuildingBlockBehavior řídí?

Jak se obsah stavebního bloku sloučí do dokumentu při vložení — jako Content, celý Paragraph nebo celý Page.

Jak je stavební blok spojen s textem zástupce strukturovaného tagu dokumentu?

StructuredDocumentTag.Placeholder (a StructuredDocumentTagRangeStart.Placeholder) vracejí BuildingBlock, který poskytuje obsah zástupce SDT, když je prázdný.


API Reference Shrnutí

Třída / MetodaPopis:
Document.GlossaryDocumentGlossaryDocument dokumentu, který obsahuje všechny stavební bloky
GlossaryDocument.BuildingBlocksBuildingBlockCollection každého stavebního bloku
GlossaryDocument.GetBuildingBlock()Vyhledá stavební blok podle galerie, kategorie a názvu
BuildingBlockJedna CompositeNode s Name, Gallery, Category, Behavior, Type, Sections
BuildingBlockCollectionAdd(), Insert(), Remove(), Clear(), Contains(), IndexOf()
BuildingBlockGallery / BuildingBlockType / BuildingBlockBehaviorEnums klasifikující stavební blok
StructuredDocumentTag.PlaceholderBuildingBlock použitý jako zástupný obsah SDT

Viz také:

 Čeština