الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

طباعة الصورة في picture box

مغلق
بدأه ماهر الشيخ في 17 نوفمبر 2005 · 2 رد · 1,299 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

لدي صورة في picture box

اريد ان اطبع الصورة من خلال button

#2

اذا احد عنده الكود او اقتراح لذلك

#3

وعليكم السلام ورحمة الله وبركاته.

آسف على التأخير ... كان المنتدى معطل كثيرا وتخرج لي تلك الرساله الشهيره كل فتره.

لطباعة أى شئ في العالم ::

قم بعمل PrintDocument سواء بالكود أو من الـ ToolBox.

PrintDocument موجود في System.Drawing.Printing , يمكنك انشاؤه ::

//  after using System.Drawing.Printing , write...
PrintDocument myDoc = new PrintDocument();

وعندما تريد أن تقوم بالطباعه نستعدي الداله Print ::

myDoc.Print();

عندما يتم استدعاء دالة Print يتنفذ الحدث PrintPage مباشرة , وهذا هو الحدث الذي ينبغي أن نتعامل معه حتى نقوم بطباعة مانريد من صور وأشكال و نصوص. ولانشاء دالة تتعامل مع حدث PrintPage هذا يمكنك استخدام نافذة الـ Properties أو من خلال الكود اكتب :

myDoc.PrintPage += new PrintPageEventHandler(PrintingMyDoc);

اكتبه قبل استدعاء دالة Print.

الـ Parameter الثاني الذي يتوقعه الـ PrintPageEventHandler من الداله (PrintingMyDoc) التي ستتعامل مع الحدث, هو من نوع PrintPageEventArgs.

PrintPageEventArgs يحتوي على شئ أساسي لدينا هنا وهو الذي نستخدمه في الطباعه وهو الخاصيه Graphics , هذه الخاصيه ترجع لنا أوبجكت من نوع Graphics نعم هو نفسه تماما الذي نستخدمه في الرسم على الشاشه ... أى أن الرسم على الشاشه مماثل تماما كالرسم على الورقة الموجوده في الـ Printer فنحن نستخدم نفس الكلاس System.Drawing.Graphics , ولكن نحن نرسم على الشاشه في أحداث مثل Paint ونرسم على الورقه الموجوده في الـ Printer في حدث الـ PrintPage. يوجد اختلافات معقده قليلا تتعلق بالقياسات ولكن هذه تحتاج موضوع منفصل.

على كل حال نحن في الـ EventHandler الخاص بالحدث PrintPage نعرف Object من نوع Graphics يستقبل هذا الذي ترجعه لنا الخاصيه Graphics الموجوده في الـ EventArgs , ثم بعد ذلك نستدعي الدوال المناسبه التي نريدها من هذا الأوبجكت التي ترسم لنا ما نريد .. فيوجد لدينا دوال خاصه برسم النصوص ولدينا أخرى لرسم الصور والأشكال والخ ::

void PrintingMyDoc(object sender,PrintPageEventArgs ppea)
{
Graphics myG = ppea.Graphics;
myG.DrawString("Moutaz",this.Font,Brushes.Black,0,0);
}

الكود السابق سيقوم بطباعة كلمة Moutaz على الورقه بنفس الخط الموجود في الأوبجكت الحالي باللون الأسود ( Brushes.Black ) وسيكون موقع الكلمه في أعلى يسار الورقه , الاحداثي (0,0).

طباعة صوره لن يكون مختلفا , فلدينا داله مخصصه لذلك اسمها DrawImage لها 30 نسخه ( Overloads ) يمكننا استخدامها في طباعة مانريد من صور ... واذا كانت مثلا الصوره موجوده في PictureBox مثلا اسمها yourPictureBox كما تريد فيمكننا كتابة ::

void PrintingMyDoc(object sender,PrintPageEventArgs ppea)
{
Graphics myG = ppea.Graphics;
myG.DrawImage(yourPictureBox.Image,0,0);
}

كما ذكرت لك فان DrawImage لها 30 شكل والشكل الذي استخدمته هو تقريبا أبسطهم . فأنا مررت أوبجكت من نوع Image لها ( أسترجعته من خاصية Image الموجوده في yourPictureBox التي تحتوي على الصوره المراد طباعتها ) ثم قمت بتمرير الاحداثي ( 0,0) ليقوم بطباعتها في أعلى يسار الصفحه.

تبدوا أن عملية الطباعه سهله , ولكن هذه العمليه بجد بجد بجد تكون معقده في كثير من الظروف.

تم تعديل هذه المشاركة بواسطة معتز شمس في 11 مارس 2007 في 15:44

#Read

http://MoutazShams.blogspot.com

projects003.gif

أعتذر عن التغيب هذه الأيام نظرا للانشغال المريب

هذا الموضوع مغلق.

مواضيع مشابهة