Все верно, такая задача обычно реализуется шаблоном. Есть несколько вариантов заполнения такого шаблона, можно создать источник данных и из него вставить поля в нужные позиции документа, а можно просто вставить именованные закладки и просто искать их в шаблоне подставляя нужные значения. Например если в документе есть закладка с именем CompanyName то код будет примерно таким:
Код:
var
TempleateFileName, BookmarkName: String;
WordApp, Document, Range: OleVariant;
i: Integer;
begin
TempleateFileName := 'c:\CompanyInfo.dotx';
try
WordApp := GetActiveOleObject('Word.Application');
except
try
WordApp := CreateOleObject('Word.Application');
except on E: Exception
do begin
ShowMessage('Не удалось запустить Word!'#13#10 + E.Message);
Exit;
end;
end;
end;
try
Screen.Cursor := crHourGlass;
Document := WordApp.Documents.Add(Template := TempleateFileName, NewTemplate := False);
for i := Document.Bookmarks.Count downto 1
do begin
BookmarkName := Document.Bookmarks.Item(i).Name;
Range := Document.Bookmarks.Item(i).Range;
if BookmarkName = 'CompanyName' then Range.Text := 'Рога и Копыта';
end;
WordApp.Visible := True;
finally
WordApp := Unassigned;
Screen.Cursor := crDefault;
end;
end;