Я хотел бы объединить два документа Word в один, используя Delphi.Объединить два документа Word, используя Delphi
В моей базе данных У меня есть таблица, содержащая таблицу с varbinary (max), которая содержит документ Word, и я хотел бы создать документ-документ из некоторых строк этой таблицы на основе условия.
Я попытался с помощью потоков
Любые идеи, как я могу добиться этого? Я искал, но не нашел решения.
var
i: Int32;
stream: TFileStream;
Path1: string;
WordApp: TWordApplication;
begin
Path1 := IncludeTrailingPathDelimiter(GetEnvironmentVariable('TEMP')) +
FormatDateTime('yyyymmddhhnnssz', Now) + '.doc';
WordApp := TWordApplication.Create(nil);
stream := TFileStream.Create(Path1, fmCreate);
try
try
with dm do
begin
DataSet.First;
CopyBlobFieldToStream(dm.DataSet,
dm.DataSetBlobField, stream);
ShowMessage(IntToStr(stream.Size));
DataSet.Next;
CopyBlobFieldToStream(dm.DataSet,
dm.DataSetBlobField, stream);
ShowMessage(IntToStr(stream.Size));
CopyBlobFieldToStream(dm.DataSet2,
dm.DataSet2BlobField, stream);
ShowMessage(IntToStr(stream.Size));
end;
finally
stream.Free;
end;
WordApp.Documents.Open(Path1, EmptyParam, False, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
WordApp.Visible := True;
finally
WordApp.Free;
end;
Это то, что я пробовал.
Просто в стороне, но зачем использовать 'с dm', а затем добавить' dm.' в большинство закрытых полей? В конечном итоге будет проще и безопаснее удалить «с». –
@DavidA все еще в отладке, я пробовал разные строки кода, поэтому я так реорганизую, когда у меня есть рабочее решение. – CiucaS
Я думаю, вы не можете сделать это таким образом. вы должны сохранять документы отдельно, открывать эти файлы с помощью Delphi отдельно и копировать один контент на другой. посмотрите здесь http://stackoverflow.com/questions/5393368/ole-automation-how-do-copy-text-between-word-documents-without-using-the-clip – sddk