UnZipper := TUnZipper.Create;
try
UnZipper.FileName := VorlageDatei;
UnZipper.OutputPath := TempDir;
UnZipper.Examine;
UnZipper.UnZipAllFiles;
finally
UnZipper.Free;
end;
//Temp-Dokument Platzhalter ersetzen
ReplaceInODTFile(TempDir + PathDelim + 'content.xml', Adressblock);
ReplaceInODTFile(TempDir + PathDelim + 'styles.xml', Adressblock);
//Temp-Dokument nach Ziel-Dokument packen
Zipper := TZipper.Create;
try
Zipper.Filename := ZielDatei;
Zipper.Clear;
ZEntries := TZipFileEntries.Create(TZipFileEntry);
if DirPathExists(TempDir) then
try
ZipFileList := FindAllFiles(TempDir);
for i := 0 to ZipFileList.Count - 1 do
ZEntries.AddFileEntry(ZipFileList[i],
CreateRelativePath(ZipFileList[i], TempDir));
finally
ZipFileList.Free;
end;
if (ZEntries.Count > 0) then
Zipper.ZipFiles(ZEntries);
DeleteDirectory(TempDir, False);
finally
FreeAndNil(ZEntries);
Zipper.Free;
end;
OpenDocument(ZielDatei);