Bausteine

Bausteine

Dieser Leitfaden zeigt, wie man die wiederverwendbaren Inhaltsbausteine, die im Glossar-Dokument eines Dokuments mit Aspose.Words FOSS für .NET gespeichert sind, liest und ändert. Die Bibliothek stellt AutoText Einträge, Deckblätter, Kopf- und Fußzeilen sowie ähnliche vordefinierte Inhalte über Document.GlossaryDocument und das BuildingBlock/BuildingBlockCollection-Objektmodell bereit.


Das Glossar-Dokument

Jedes Document enthält ein GlossaryDocument — erreichbar über Document.GlossaryDocument — das selbst eine Unterklasse von DocumentBase ist und die Bausteine hält. Seine BuildingBlocks-Eigenschaft gibt ein BuildingBlockCollection zurück, wobei FirstBuildingBlock/LastBuildingBlock schnellen Zugriff auf die Enden der Liste ermöglichen. Nach einem bestimmten Baustein kann man mit GetBuildingBlock(gallery, category, name) suchen, wobei es gleichzeitig mit seinem BuildingBlockGallery, dem Kategorien-String und dem Namen übereinstimmt.


Struktur des Bausteins

BuildingBlock ist ein CompositeNode, daher enthält es seinen eigenen Inhaltsbaum — Sections (ein SectionCollection), FirstSection und LastSection — auf die gleiche Weise, wie ein Document Abschnitte enthält. Seine Metadaten-Eigenschaften identifizieren und klassifizieren es: Name, Guid, Description, Category, Gallery (ein BuildingBlockGallery — AutoText, CoverPage, Headers, Footers, Tables, Watermarks und dutzende weiterer vordefinierter Galerien), Type (ein BuildingBlockType), und Behavior (ein BuildingBlockBehavior von Content, Paragraph oder Page), die steuern, wie seine Inhalte beim Einfügen in ein Dokument zusammengeführt werden.


Verwalten der Bausteinsammlung

BuildingBlockCollection unterstützt die vollständige Bearbeitung von Sammlungen: Add(node), Insert(index, node), Remove(node), RemoveAt(index), Clear(), Contains(node) und IndexOf(node), zusammen mit ToArray() und GetEnumerator() zum Lesen. Da es ein NodeCollection ist, können Bausteine konstruiert, geklont und verschoben werden, wobei dieselben Node-APIs wie in jedem anderen Teil des Dokumentbaums verwendet werden.


Platzhalter-Text-Bausteine

Strukturierte Dokument-Tags können einen Baustein als Platzhalterinhalt referenzieren: StructuredDocumentTag.Placeholder und StructuredDocumentTagRangeStart.Placeholder geben beide das BuildingBlock zurück, das angezeigt wird, wenn das Tag leer ist, über die gemeinsame IStructuredDocumentTag.Placeholder-Eigenschaft.


Tipps und bewährte Verfahren

  • Vergleichen Sie die drei Argumente von GetBuildingBlock(gallery, category, name) sorgfältig — derselbe Name kann in verschiedenen Galerien oder Kategorien existieren.
  • Verwenden Sie BuildingBlockGallery, um zu filtern, welche Art von wiederverwendbarem Inhalt Sie suchen (AutoText, CoverPage, Tables, Watermarks usw.), anstatt jeden Baustein nur nach Namen zu durchsuchen.
  • BuildingBlockBehavior bestimmt, wie eingefügter Inhalt mit dem umgebenden Dokument zusammengeführt wird (Content, Paragraph oder Page) — prüfen Sie dies, bevor Sie davon ausgehen, dass ein Baustein wie erwartet eingefügt wird.
  • Da BuildingBlock ein CompositeNode ist, behandeln Sie es beim Erstellen oder Bearbeiten seiner Inhalte wie jeden anderen Node-Teilbaum — AppendChild, InsertAfter und ähnliche Node-Methoden gelten alle.

Häufige Probleme

ProblemUrsacheLösung
GetBuildingBlock() liefert nichtsGalerie, Kategorie oder Name stimmt nicht exakt mit einem vorhandenen Baustein übereinEnumeriere GlossaryDocument.BuildingBlocks, um die genaue Gallery/Category/Name-Kombination zu finden
Eingefügter Bausteininhalt wird unerwartet zusammengeführtBehavior (Content/Paragraph/Page) nicht berücksichtigtÜberprüfen Sie BuildingBlock.Behavior vor dem Einfügen, um zu verstehen, wie es zusammengeführt wird
Der Platzhalter für das strukturierte Dokument-Tag zeigt nicht den erwarteten InhaltPlaceholder verweist auf ein anderes BuildingBlock als angenommenLesen Sie StructuredDocumentTag.Placeholder, um zu bestätigen, welcher Baustein tatsächlich referenziert wird

FAQ

Wo werden Bausteine in einem Dokument gespeichert?

Im GlossaryDocument des Dokuments, zugänglich über Document.GlossaryDocument, dessen BuildingBlocks-Eigenschaft ein BuildingBlockCollection ist.

Wie finde ich einen bestimmten Baustein, zum Beispiel einen AutoText-Eintrag?

Rufe GlossaryDocument.GetBuildingBlock(gallery, category, name) mit dem passenden BuildingBlockGallery, der Kategorie und dem Namen auf.

Kann ich neue Bausteine programmgesteuert hinzufügen?

Ja — BuildingBlockCollection unterstützt Add(node) und Insert(index, node), da es ein NodeCollection ist.

Was steuert BuildingBlockBehavior?

Wie der Inhalt des Bausteins beim Einfügen in das Dokument zusammengeführt wird — als Content, ein ganzes Paragraph oder ein ganzes Page.

Wie ist ein Baustein mit dem Platzhaltertext eines strukturierten Dokument-Tags verknüpft?

StructuredDocumentTag.Placeholder (und StructuredDocumentTagRangeStart.Placeholder) geben das BuildingBlock zurück, das den Platzhalterinhalt eines SDT liefert, wenn dieser leer ist.


API Reference Zusammenfassung

Klasse / MethodeBeschreibung
Document.GlossaryDocumentDas GlossaryDocument des Dokuments, das alle Bausteine enthält
GlossaryDocument.BuildingBlocksBuildingBlockCollection von jedem Baustein
GlossaryDocument.GetBuildingBlock()Sucht einen Baustein nach Galerie, Kategorie und Name
BuildingBlockEin CompositeNode mit Name, Gallery, Category, Behavior, Type, Sections
BuildingBlockCollectionAdd(), Insert(), Remove(), Clear(), Contains(), IndexOf()
BuildingBlockGallery / BuildingBlockType / BuildingBlockBehaviorEnums zur Klassifizierung eines Bausteins
StructuredDocumentTag.PlaceholderDer BuildingBlock wird als Platzhalterinhalt eines SDT verwendet

Siehe auch

 Deutsch