Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Download Web Page to MHT with w/ Disk Cache
See more MHT / HTML Email Examples
Downloads a web page into a .mht web archive. Embedded images and style sheets are loaded and/or saved to a disk cache.Chilkat Pascal (Lazarus/Delphi) Downloads
program ChilkatDemo;
// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.
{$IFDEF FPC}
{$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}
uses
{$IFDEF UNIX}
cthreads,
{$ENDIF}
SysUtils,
CkDllLoader,
Chilkat.Mht;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
success: Boolean;
mht: TMht;
begin
success := False;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
mht := TMht.Create;
// Use a single directory to hold cached files.
// (Make sure it is a directory your app has permission to create files.)
mht.NumCacheLevels := 0;
mht.AddCacheRoot('/Users/chilkat/temp/mhtCache/');
// Tell the MHT component to save files to cache,
// and to retrieve from cache if possible:
mht.FetchFromCache := True;
mht.UpdateCache := True;
// The 1st time this is run, the parts (image files,
// style sheets, etc.) will be saved to the disk cache.
// The 2nd time this is run, the parts will load from cache.
// Note: The main content (i.e. the HTML page)
// is not saved to cache, nor is it retrieved from cache.
// It is only the sub-parts (embedded images, style sheets)
// that are saved to and loaded from cache.
success := mht.GetAndSaveMHT('http://www.intel.com/','intel.mht');
if (success <> True) then
begin
WriteLn(mht.LastErrorText);
end
else
begin
WriteLn('MHT Created!');
end;
mht.Free;
end;
// ---------------------------------------------------------------------------
begin
try
RunDemo;
except
on E: Exception do
WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
end;
WriteLn;
{$IFDEF MSWINDOWS}
WriteLn('Press Enter to exit...');
ReadLn;
{$ENDIF}
end.