Строительные блоки обеспечивают удобный способ хранения и повторного использования «котельной плиты» в документах Word. Содержимое может быть «простым текстом» или включать форматирование и все, что поддерживается Word. Это часто проще и быстрее, чем пытаться воссоздать контент с помощью кода или импортировать контент из внешнего файла.
Строительные блоки хранятся в шаблонах (dotx или dotm). Шаблон может быть присоединен к документу (обычно, когда документ создается из этого шаблона) или он может быть «глобальным», например Normal.dotm.
В этом случае Building Block сохраняется в прикрепленном шаблоне и будет доступен для любого документа, созданного из этого шаблона (но не для других документов).
Строительные блоки могут быть организованы в «Типы» и «Категории», что означает, что в шаблоне «контейнер» может быть несколько строительных блоков с одним и тем же именем. Если это так, необходимо указать тип строительного блока, категорию и имя при обращении к нему. Если имя уникально в шаблоне, то требуется только имя.
Следующий фрагмент кода показывает обе возможности. Два строительных блока вставляются один за другим в конце объекта Document.
Строительный блок вставляется методом Insert
.
Word.Range rng = doc.Content;
rng.Collapse(Word.WdCollapseDirection.wdCollapseEnd);
Word.Template objTmpl = (Word.Template) doc.get_AttachedTemplate(); // NormalTemplate
Word.BuildingBlock objBB = objTmpl.BuildingBlockEntries.Item("TestCCwithActiveX");
objBB.Insert(rng, true);
rng = doc.Content;
rng.Collapse(Word.WdCollapseDirection.wdCollapseEnd);
Word.BuildingBlock objBB2 = objTmpl.BuildingBlockTypes.Item(Word.WdBuildingBlockTypes.wdTypeAutoText).Categories.Item("Test").BuildingBlocks.Item("test heading");
objBB2.Insert(rng, true);