PDA

View Full Version : پرینت در سی شارپ



hosseinam1370
جمعه 26 تیر 1394, 09:29 صبح
دوستان اگه لطف کنید نحوه ی پرینت گرفتن از یه تکست باکس و یا یه استرینگ رو توضیح بدید، واقعا ممنون میشم، چون چیزی به فارسی تو نت پیدا نکردم ،
یا روش کار رو توضیح بدید،
اصلا هرچیزی که راه بیوفتیم.


با تشکر.

mrprestige
جمعه 26 تیر 1394, 09:37 صبح
سلام دوست من میشه منظورتو بیشتر توضیح بدی ،" پرینت گرفتن از یک استرینگ" رو متوجه نشدم

hosseinam1370
شنبه 27 تیر 1394, 00:52 صبح
سلام دوست من میشه منظورتو بیشتر توضیح بدی ،" پرینت گرفتن از یک استرینگ" رو متوجه نشدم

منظورم اینه که ، مثلا محتویات یه text box رو بگیریم چاپ کنیم.باید چیکار کنیم ؟


با تشکر.

Mahmoud Zaad
شنبه 27 تیر 1394, 10:59 صبح
سلام
اول یه کنترل printDocument به فرم اضافه می کنید (drag and drop) بعد در رویداد printPageش کدهایی مثل کد زیر می نویسید:
//نوشته ها و خطوط را حرفه ای تر می کند
e.Graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;

//چیدمان نوشته
StringFormat strFormat = new StringFormat();
//far: right near: left
strFormat.Alignment = StringAlignment.Far;

//رنگ پس زمینه برای نوشته
var rect = new RectangleF(this.Location.X, this.Location.Y, this.Width, this.Height);
e.Graphics.FillRectangle(Brushes.Yellow, rect);

//متن
e.Graphics.DrawString(this.Text, this.Font, Brushes.Black, this.Location.X, this.Location.Y);

e.HasMorePages = false;

در یک دکمه هم کدهای زیر رو می نویسید تا لیست پرینترها باز بشه و کاغذ بره برای چاپ:
using (PrintDialog pd = new PrintDialog())
{
if (pd.ShowDialog() == DialogResult.OK)
printDocument1.PrinterSettings = pd.PrinterSettings;
printDocument1.Print();
}
در کد بالا متن فرم رو برای چاپ فرستادیم، رنگ پس زمینه ها انتخاب کردیم، شما می تونید با استفاده از e.Graphics... هر شکلی مثل مستطیل، دایره، خط، منحنی، عکس و ... رو برای چاپ بفرستید.
البته می تونید printPreviewControl هم برای پیش نمایش به کاربر استفاده کنید.