# تحويل مستندات HTML إلى صور

<datetime class="hidden">2004-06-30T00:00</datetime>

<!-- category -- mostlylucidcouk, Imported -->
حسنا, بعد قليل من اللعب حصلت على شيء يعمل الآن , أنا ' لا أفوز بـ32 البرمجة ولكن يبدو أن هذا يعمل

باستخدام نظام;

باستخدام النظام.رسم;

باستخدام نظام

باستخدام النظام.جمعات;

باستخدام نظام.ComponentModel;

باستخدام نظام

باستخدام نظام.Data;

باستخدام mshtml;

باستخدام نظام.Runtime.InteropServicesM SK2

باستخدام مايكروسوفت.Win32;

إسم namespace ThumbMaker

{

/// &lt;الخلاصة&gt;

/// شرح ملخص للنموذج1.

/// &lt;/خلاصة&gt;

نموذج الطبقة العامة

{

خاصة AxSHDocVw.AxWebBrowser axWebbrowser1;

/// &lt;الخلاصة&gt;

/// متغير المصمم المطلوب.

/// &lt;/خلاصة&gt;

نظام خاص.نموذج المكون.مكونات محفظة 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();

}

/// &lt;الخلاصة&gt;

/// أزيل كل المصادر المستخدمة.

/// &lt;/خلاصة&gt;

المسح الضار المحمي الفراغ فك ( فك بوول )

{

إذا كان ( يحل )

{

إذا كان (أجزاء !=صفر )

{

المكونات.Dispose();

}

}

القاعدة .إيجاد(إليجاد  );

}

#region قام مصمم النموذج في وينډوز بإنتاج الشفرة

/// &lt;الخلاصة&gt;

/// الطريقة المطلوبة لدعم المصمم - لا تتغير

/// محتويات هذه الطريقة مع محرر البرمجة

/// &lt;/خلاصة&gt;

الفراغ الخاص ب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 );

}

#منطقة النهاية

/// &lt;الخلاصة&gt;

/// نقطة الدخول الرئيسية للتطبيق

/// &lt;/خلاصة&gt;

[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≥);

}

}