Հետաքրքիր է

Պահպանեք վեբ էջը որպես HTML կամ MHT ՝ օգտագործելով Delphi

Պահպանեք վեբ էջը որպես HTML կամ MHT ՝ օգտագործելով Delphi

Դելֆիի հետ աշխատելիս TWebBrowser բաղադրիչը թույլ է տալիս ստեղծել հարմարեցված Վեբ դիտարկման ծրագիր կամ ավելացնել ձեր ինտերնետի, ֆայլերի և ցանցերի զննարկում, փաստաթղթերի դիտում և տվյալների բեռնման հնարավորություններ ձեր ծրագրերում:

Ինչպես պահպանել վեբ էջը TWebBrowser- ից

Internet Explorer- ի օգտագործման ժամանակ ձեզ թույլատրվում է դիտել էջի աղբյուրի HTML կոդը և պահպանել այդ էջը որպես ֆայլ ձեր տեղական սկավառակում: Եթե ​​դիտում եք էջ, որը ցանկանում եք պահել, անցեք «Պատկեր» / Save As… ընտրացանկի կետին: Բացման երկխոսության վանդակում դուք առաջարկում եք մի քանի ֆայլի տեսակներ: Էջը, որպես այլ ֆայլերի տեսակը պահելը, կանդրադառնա էջի պահպանման վրա:

TWebBrowser բաղադրիչը (որը գտնվում է Բաղադրիչի պալատի «Ինտերնետ» էջում) ապահովում է մուտք դեպի վեբ զննարկչի գործառույթներ ձեր Delphi հավելվածներից: Ընդհանուր առմամբ, դուք կցանկանաք միացնել WebBrowser- ի ներսում ցուցադրված վեբ էջի պահպանումը որպես սկավառակի HTML ֆայլ:

Վեբ էջը որպես հում HTML պահելը

Եթե ​​ցանկանում եք պահպանել միայն վեբ էջը որպես հում HTML, ապա կընտրեիք «Վեբ էջ, միայն HTML (* .htm, * .html)»: Այն պարզապես կփրկի ընթացիկ էջի աղբյուրի HTML- ը ձեր անպտուղ սկավառակներից: Այս գործողությունը ՉԻ փրկելու գրաֆիկան էջից կամ էջի ներսում օգտագործված ցանկացած այլ ֆայլից, ինչը նշանակում է, որ եթե դուք ֆայլը վերբեռնեք տեղական սկավառակից, կտեսնեք կոտրված պատկերի հղումներ:

Ահա, թե ինչպես կարելի է պահպանել վեբ էջը որպես հում HTML `օգտագործելով Delphi կոդ.

օգտագործում ActiveX;

կարգը WB_SaveAs_HTML (ՀԲ: TWebBrowser; կոնստ FileName: լարային) ;
var
PersistStream: IPersistStreamInit;
Հոսք ՝ IStream;
FileStream: TFileStream;
սկսվում է
  Եթե ​​ոչ Հանձնարարվել է (WB.Document) ապա
  սկսվում է
ShowMessage ('Փաստաթուղթը չի բեռնված!');
Ելք;
  վերջ;
PersistStream. = WB.Document ինչպես IPersistStreamInit;
FileStream. = TFileStream.Create (FileName, fmCreate);
  փորձիր
Հոսք. = TStreamAdapter.Create (FileStream, soReference) որպես IStream;
եթե չհաջողվեց (PersistStream.Save (Stream, True)), ապա ShowMessage ('SaveAs HTML- ը ձախողվում է');
  վերջապես
FileStream.Free;
  վերջ;
վերջ; (* WB_SaveAs_HTML *)

Օգտագործման նմուշ.

// առաջին նավարկություն
WebBrowser1.Navigate ('// delphi.about.com');
// ապա խնայել
WB_SaveAs_HTML (WebBrowser1, 'c: WebBrowser1.html');

Նոտաներ

  • IPersistStreamInit և IStream միջերեսները հայտարարվում են ActiveX միավորի ներսում:
  • Վեբ էջը պահվում է որպես հում HTML WebBrowser1.html ֆայլ C- սկավառակի արմատային թղթապանակում:

MHT. Վեբ արխիվ, մեկ ֆայլ

Երբ վեբ էջը պահում եք որպես «Վեբ արխիվ, մեկ ֆայլ (*. Մխտ)», վեբ փաստաթուղթը պահվում է Multipurpose Internet Mail Extension HTML (MHTML) ձևաչափով ՝ .mht ֆայլի ընդլայնմամբ: Վեբ էջի բոլոր հարաբերական հղումները վերափոխվում են, և ներկառուցված բովանդակությունը ներառված է .mht ֆայլում, այլ ոչ թե առանձին թղթապանակում պահելու փոխարեն (քանի որ գործը վերաբերում է «Վեբ էջ, ամբողջական (* .htm, * .html)»: )

MHTML- ն հնարավորություն է տալիս ուղարկել և ստանալ վեբ էջեր և HTML այլ փաստաթղթեր `օգտագործելով էլփոստի ծրագրեր, ինչպիսիք են Microsoft Outlook- ը և Microsoft Outlook Express- ը; կամ նույնիսկ ձեր պատվերով Delphi էլ. փոստով ուղարկվող լուծումները: MHTML- ն հնարավորություն է տալիս ուղղակիորեն ներկառուցել պատկերները ձեր էլ. Փոստի հաղորդագրությունների մարմնում, այլ ոչ թե դրանք կցելով հաղորդագրությանը:

Ահա, թե ինչպես կարելի է պահպանել վեբ էջը որպես մեկ ֆայլ (MHT ձևաչափ) ՝ օգտագործելով Delphi կոդ ՝

օգտագործում CDO_TLB, ADODB_TLB;

կարգը WB_SaveAs_MHT (WB: TWebBrowser; FileName: TFileName);
var
Msg: Imessage;
Conf: IConfiguration;
Հոսք ՝ _Stream;
URL. Լայնաշերտ;
սկսվում է
  Եթե ​​ոչ Հանձնարարվել է (WB.Document) ապա Ելք;
URL. = WB.LocationURL;
Msg: = CoMessage.Create;
Conf: = CoConfiguration.Create;
  փորձիր
Msg.Configuration: = Conf;
Msg.CreateMHTMLBody (URL, cdoSuppressAll, ",");
Հոսք. = Msg.GetStream;
Stream.SaveToFile (FileName, adSaveCreateOverWrite);
  վերջապես
Msg: = զիլ;
Conf: = զիլ;
Հոսք. = Զիլ;
  վերջ;
վերջ; (* WB_SaveAs_MHT *)

Նմուշի օգտագործումը.

// առաջին նավարկություն
WebBrowser1.Navigate ('// delphi.about.com');
// ապա խնայել
WB_SaveAs_MHT (WebBrowser1, 'c: WebBrowser1.mht');

Նշում

  • _Stream դասը սահմանվում է ADODB_TLB միավորում, որը դուք հավանաբար արդեն ստեղծել եք: IMessage և IConfiguration- ը փոխկապակցում է ծածկագիրը cdosys.dll գրադարանում: CDO- ն կոչված է Համագործակցության տվյալների օբյեկտներ. Օբյեկտների գրադարաններ, որոնք նախատեսված են SMTP հաղորդագրությունների ակտիվացման համար:

CDO_TLB- ը Delphi- ի կողմից ինքնաբերաբար ստեղծվող միավոր է: Այն ստեղծելու համար հիմնական մենյուից ընտրեք «Ներմուծման տեսակը գրադարան», ընտրեք «C: WINDOWS system32 cdosys.dll», ապա կտտացրեք «Ստեղծեք միավոր» կոճակը:

Ոչ մի TWebBrowser

Դուք կարող եք վերաշարադրել WB_SaveAs_MHT կարգը ՝ URL տողը (ոչ TWebBrowser) ընդունելու համար, որպեսզի կարողանաք ուղղակիորեն վեբ էջ պահել, անհրաժեշտություն չկա օգտագործել WebBrowser բաղադրիչը: WebBrowser- ի URL- ը վերցվում է WB.LocationURL հատկության միջոցով: