تحويل مستندات HTML إلى صور
حسنا, بعد قليل من اللعب حصلت على شيء يعمل الآن , أنا ' لا أفوز بـ32 البرمجة ولكن يبدو أن هذا يعمل
باستخدام نظام;
باستخدام النظام.رسم;
باستخدام نظام
باستخدام النظام.جمعات;
باستخدام نظام.ComponentModel;
باستخدام نظام
باستخدام نظام.Data;
باستخدام mshtml;
باستخدام نظام.Runtime.InteropServicesM SK2
باستخدام مايكروسوفت.Win32;
إسم namespace ThumbMaker
{
/// <الخلاصة>
/// شرح ملخص للنموذج1.
/// </خلاصة>
نموذج الطبقة العامة
{
خاصة AxSHDocVw.AxWebBrowser axWebbrowser1;
/// <الخلاصة>
/// متغير المصمم المطلوب.
/// </خلاصة>
نظام خاص.نموذج المكون.مكونات محفظة M SK2صفر ;
سُمَلْمْمَمَسْنْمِيْنَمْسَنْنِيَمِنْرْنّيْمُنْكْنُمْنَّيْتْمٍنْيْهْنـمَنَيْرَنِينْيِمْوْنِّيْةِمِمَرْنيْنَّيْدْنمَيَنّمْرِينِيِنَاْمًنْتِيّنْوَمُمِرْينِينَيِرِنِیْن .
النموذج العام1()
{
//
// مطلوبة من أجل دعم مصمم الاوراق في وينډوز
//
ابدأ المكون();
object o = null ;
هذا .مرئي= خاطئ ;
axWebBrowser1.Navigate (urlStr, ref oM SK3 refoMSC4 refOMスク5 ref OMST6
}
Const int WM_PAINT
Const int WM_PRINTCLIENT = 0x0318;
Const int WM_ERASEBKGND
Const int WM_PRINT
الكونستر فيت PRF_CHILDREN = 0x00000010;
الكونستر فيت PRF_CLIENT = 0x00000004;
الفراغ العام GrabWindow()
{
IntPtr hWnd = هذا .Handle;
IntPtr hBmp;
خريطة بيت مابيت خاصتي= صفر ;
IntPtr hDCMem = GDIM SK1CreateCompatibleDC((IntPtriMSC3 null );
IntPtr hDC = المستخدمM SK1GetWindowDC(hWndMSC3
hBmp = GDI32.CreateCompatibleBitmap (hDCM SK3IntPtrMska4axWebBrowserMske5Width
المستخدم32.ReleaseDC(hWndM SK2 hDC );
IntPtr hOld = GDI 32.SelectObjectM SK2hDCMem, hBmpMSC4
المستخدم32.SendMessage(hWndM SK2 WM_PRINT, hDCMem, new IntPtrM SK3PRF_CLIENT | PRF_CHILDREN));
GDI32.SelectObject (hDCMem, hOldM SK3
GDI32.DeleteObject(hDCMemM SK2
خرائط Bitmap خاصتي = خرائطة bitmap.من خرائطي Hbitmap (hBmpM SK3
MyBitmap.Save( "test.png" ,ImageFormat.Png);
هذا .Close();
}
/// <الخلاصة>
/// أزيل كل المصادر المستخدمة.
/// </خلاصة>
المسح الضار المحمي الفراغ فك ( فك بوول )
{
إذا كان ( يحل )
{
إذا كان (أجزاء !=صفر )
{
المكونات.Dispose();
}
}
القاعدة .إيجاد(إليجاد );
}
#region قام مصمم النموذج في وينډوز بإنتاج الشفرة
/// <الخلاصة>
/// الطريقة المطلوبة لدعم المصمم - لا تتغير
/// محتويات هذه الطريقة مع محرر البرمجة
/// </خلاصة>
الفراغ الخاص بInitializeComponent()
{
نظام.أبحاث.أحاث مدير المصادر M SK2نظام جديد .أعمالMSC4أحد مدير المصادرMska5 النوع (شكل1));
هذا .axWebBrowserM SK1 = جديد AxSHDocVw.AxWebBreaser();
((نظام.نموذج مكونM SK2مساعدة إتصاليّة )( هذا | . |axWebBrowser |1)). |BeginInit
هذا .SuspendLayout();
//
// axWebBrowser1
//
هذا .axWebBrowserM SK1Dock =System.WindowsMST4FormsMSC5DockingStyleM ST6FillM st7
هذا .axWebBrowser1.شيء = صحيح ;
هذا .axWebBrowser1.Location = new SystemM SK3DrawingMska4PointMske5 0);
هذا .axWebBrowser1.OcxState = ((System+.+Windows+.+Forms+M SK6+AxHost+MSC7+State+MST8+resources+ .+GetObject+MSP10+Msp11+axWeb Browser+MPS12+OcXState=MSP13+MSS14+
هذا .axWebBrowser1.Size = new SystemM SK3DrawingMSC4SizesMska5 768);
هذا .axWebBrowser1.TabIndex = 0;
هذا .axWebBrowserM SK1DocumentComplete += new AxSHDocVw.DWebBbrowserEventsMSC4_DocumentCompleteEventHandler_DocumentComplete);
//
// النموذج1
//
هذا .مقياس اتوماتي = خاطئ ;
هذا .AutoScaleBaseSize
هذا .الجمهورSize |= |نظام جديد | . | الطباعة | . | الحجم |(1024,
هذا .ControlsM SK1Add( هذا |. |axWebBrowser | 1);
هذا .FormBorderStyle =System.WindowsM SK3FormsMSC4Form BorderStyleMST5NoneMst6
هذا .اسم = "شكل1" ≥;
هذا .ShowInTaskbar = خاطئ ;
هذا .كتابة = "شكل1" ♫;
((نظام.نموذج مكونM SK2مساعدة إتصاليّة )( هذا | . |axWebBrowser |1)). |EndInit
هذا .ResumeLayout( False );
}
#منطقة النهاية
/// <الخلاصة>
/// نقطة الدخول الرئيسية للتطبيق
/// </خلاصة>
[STAThread]
الفراغ الثابت Main()
{
Application.RunM SK1 new Form1());
}
الفراغ الخاص axWebBrowser1_DocumentComplete ( sender object, AxSHDocVwM SK3DWebBrowserEventsMSC4_DocumentCompleteEvent e)
{
GrabWindow();
}
}
श्रेणी GDI32
{
[DllImport( "GDI32.dllM SK3 ♫)]
public static external bool BitBlt(IntPtr hdcDest,InstPtr nXDest ,InntPtr NYDest,
width × , × height × , × hdcSrc ×, ×
IntPtr nXSrc,
[DllImport( "GDI32.dllM SK3 ♫)]
Public static external IntPtr CreateCompatibleBitmap(IntPTR hdc,InтPtr nWidthM SK2
فيتPtr nطول);
[DllImport( "GDI32.dllM SK3 ♫)]
Public static extern IntPtr CreateCompatibleDC(IntPTR hdc);
[DllImport( "GDI32.dllM SK3 ♫)]
Public static external bool DeleteDC(IntPtr hdc);
[DllImport( "GDI32.dllM SK3 ♫)]
Public static external bool DeleteObject(IntPtr hObject≥);
[DllImport( "GDI32.dllM SK3 ♫)]
Public static external IntPtr GetDeviceCaps(IntPTR hdc,InтPtr nIndexM SK2
[DllImport( "GDI32.dllM SK3 ♫)]
Public static external IntPtr SelectObject(IntPTR hdc,InтPtr hgdiobjM SK2
}
صنف المستخدم32
{
[DllImport( "User32.dllM SK3 )]
Public static extern IntPtr GetDesktopWindow();
[DllImport( "User32.dllM SK3 )]
Public static external IntPtr GetWindowDC(IntPtri hWnd);
[DllImport( "User32.dllM SK3 )]
Public static external IntPtr ReleaseDC(IntPTR hWnd,InтPtr hDC );
[DllImport( "User32.dllM SK3 )]
public static extern int SendMessage(IntPtr hWndM SK1 int Msg, IntPtri wParamMSC3 InтPtr lParam≥);
}
}