مثير للإعجاب

احفظ صفحة ويب بتنسيق HTML أو MHT باستخدام Delphi

احفظ صفحة ويب بتنسيق HTML أو MHT باستخدام Delphi

عند العمل مع Delphi ، يتيح لك مكون TWebBrowser إمكانية إنشاء تطبيق مخصص لتصفح الويب أو إضافة الإنترنت وتصفح الملفات والشبكات وعرض المستندات وتنزيل البيانات إلى التطبيقات الخاصة بك.

كيفية حفظ صفحة ويب من TWebBrowser

عند استخدام Internet Explorer ، يُسمح لك بعرض رمز HTML المصدر للصفحة وحفظ تلك الصفحة كملف على محرك الأقراص المحلي. إذا كنت تعرض صفحة ترغب في الاحتفاظ بها ، فانتقل إلى عنصر القائمة File / Save As .... في مربع الحوار الذي يفتح ، لديك العديد من أنواع الملفات المقدمة. سيؤثر حفظ الصفحة كنوع ملف مختلف على كيفية حفظ الصفحة.

يوفر مكون TWebBrowser (الموجود على صفحة "الإنترنت" في لوحة المكونات) الوصول إلى وظيفة مستعرض الويب من تطبيقات Delphi الخاصة بك. بشكل عام ، ستحتاج إلى تمكين حفظ صفحة ويب معروضة داخل WebBrowser كملف HTML إلى قرص.

حفظ صفحة ويب كـ HTML خام

إذا كنت تريد فقط حفظ صفحة ويب بتنسيق HTML خام ، فستختار "صفحة ويب ، HTML فقط (* .htm ، * .html)". سيؤدي ذلك ببساطة إلى حفظ مصدر HTML للصفحة الحالية إلى محرك الأقراص الخاص بك كما هو. لن يحفظ هذا الإجراء الرسومات من الصفحة أو أي ملفات أخرى مستخدمة داخل الصفحة ، مما يعني أنه إذا قمت بتحميل الملف مرة أخرى من القرص المحلي ، فستشاهد روابط صور مقطوعة.

إليك كيفية حفظ صفحة ويب بتنسيق HTML خام باستخدام كود دلفي:

الاستخدامات اكتف.

إجراء WB_SaveAs_HTML (WB: TWebBrowser؛ CONST اسم الملف : خيط) ;
فار
PersistStream: IPersistStreamInit ؛
تيار: IStream.
FileStream: TFileStream؛
ابدأ
  ان لم تعيين (WB.Document) ثم
  ابدأ
ShowMessage ('لم يتم تحميل المستند!') ؛
ىخرج؛
  النهاية;
PersistStream: = WB.Document مثل IPersistStreamInit.
FileStream: = TFileStream.Create (FileName ، fmCreate) ؛
  محاولة
دفق: = TStreamAdapter.Create (FileStream ، soReference) كـ IStream؛
إذا فشل (PersistStream.Save (دفق ، صواب)) ثم ShowMessage ('SaveAs HTML fail!')؛
  أخيرا
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: أرشيف الويب ، ملف واحد

عند حفظ صفحة ويب كـ "أرشيف ويب ، ملف مفرد (* .mht)" ، يتم حفظ مستند الويب بتنسيق HTML Multipurpose Internet Mail Extension HTML (MHTML) بملحق ملف .mht. يتم إعادة تعيين كافة الارتباطات النسبية في صفحة الويب ويتم تضمين المحتوى المضمن في ملف .mht ، بدلاً من حفظه في مجلد منفصل (كما هو الحال مع "صفحة ويب ، كاملة (* .htm ، * .html)" ).

يمكّنك MHTML من إرسال واستقبال صفحات الويب ومستندات HTML الأخرى باستخدام برامج البريد الإلكتروني مثل Microsoft Outlook و Microsoft Outlook Express ؛ أو حتى حلول إرسال البريد الإلكتروني المخصصة لـ Delphi. يمكّنك MHTML من تضمين الصور في نص رسائل البريد الإلكتروني مباشرةً بدلاً من إرفاقها بالرسالة.

فيما يلي كيفية حفظ صفحة ويب كملف واحد (تنسيق MHT) باستخدام كود دلفي:

الاستخدامات CDO_TLB ، ADODB_TLB ؛

إجراء WB_SaveAs_MHT (WB: TWebBrowser؛ FileName: TFileName)؛
فار
Msg: IMessage؛
أسيوط: التكوين ؛
دفق: _Stream ؛
عنوان URL: widestring ؛
ابدأ
  ان لم تعيين (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 هي وحدة تم إنشاؤها تلقائيًا بواسطة دلفي. لإنشائه ، من القائمة الرئيسية حدد "استيراد مكتبة الأنواع" ، حدد "C: WINDOWS system32 cdosys.dll" ثم انقر فوق الزر "إنشاء وحدة".

لا TWebBrowser

يمكنك إعادة كتابة الإجراء WB_SaveAs_MHT لقبول سلسلة URL (وليس TWebBrowser) لتتمكن من حفظ صفحة ويب مباشرة - لا حاجة لاستخدام مكون WebBrowser. يتم استرداد URL من WebBrowser باستخدام خاصية WB.LocationURL.


شاهد الفيديو: طريقة عمل صفحة ويب باستخدام لغة HTML (يونيو 2021).