PDA

View Full Version : سوال: پرینت گرفتن عکس



yosef_ghobadi
چهارشنبه 01 مهر 1394, 00:05 صبح
سلام به همه دوستان و اساتید گرامی
سوال این بود که چطور عکس رو در برنامه,مستقیم چاپ کنم؟!
هم از پیکچر باکس و هم آدرس عکس رو بدم چاپ کنه
خیلی ممنون میشم اگه جواب بدین

shaho.khedri
چهارشنبه 01 مهر 1394, 00:24 صبح
سلام دوست من
البته هم در این انجمن هم در جاهای دیگه آموزش هایی برای این کار هست
شما باید کنترل printDocument رو به فرمتون اضافه کنید
این کنترل میشه گفت که نامرئی هستش و در اجرای برنامه دیده نمیشه و داخل بخش Design هم پایین فرم میاد
وقتی روش دوبار کلیک کنید رویداد مربوط به پرینتش باز میشه. یه آرگومان برای این رویداد که e هستش حکم کاغذ شما رو داره
یکی از فیلداشم که Graphics هستش و شما میتونید با یک همچین کدی تصویر رو برای چاپ آماده کنید:

e.Graphics.DrawImage(Image.FromStream(ms), new Point(20, 65));
این کد یک تصویر رو که اینجا داخل یه stream ذخیره شده (و شما میتونید هرطور دلتون میخواد تصویر رو بفرستید) در مختصات 20 و 65 کاغذ آماده ی چاپ میکنه
حالا روی دکمه ای که برای پرینت گرفتن آماده کردین با این کد تصویر رو برای پرینتر بفرستید:

printDocument1.Print();
پیشنهاد میکنم از کنترلهای printPreviewDialog و printDialog هم استفاده بکنید که به جذابیت برنامه اضافه بشه

drsina
چهارشنبه 01 مهر 1394, 00:27 صبح
یه PrintDocument از toolbox ادد کن .
بعد توو رویدادی که میخوای مثلا button اینو اضافه کن :
PrintDocument printDocument1 = new PrintDocument();printDocument1.PrintPage +=new PrintPageEventHandler(printDocument1_PrintPage);
printDocument1.Print();
بعد توو printDocument1_PrintPage event
اینو اضافه کن :
e.Graphics.DrawImage(pic.Image, 0, 0);



این برای پیکچر باکس و اینم برای فایل :میتونی از خود برنامه ای که عکسا باز می کنه با متد زیر پرینت بگیری البته راه های دیگه ای هم هست :
public static void Print(this FileInfo value){
Process p = new Process();
p.StartInfo.FileName = value.FullName;
p.StartInfo.Verb = "Print";
p.Start();
}
اینم یه مثال (پروژه ) خوب : http://www.c-sharpcorner.com/UploadFile/9f4ff8/print-the-window-form-print-the-image-of-picture-box/

موفق باشی