PDA

View Full Version : سوال: پرینت گرفتن ار فرم با printdocument



star_game
سه شنبه 28 شهریور 1391, 18:04 عصر
با سلام خدمت دوستان برنامه نویس
من می خوام از یک صفحه در فرمم پرینت بگیرم کدام رو هم از روی pdf آقای سید محمد هاشمیان نوشتم ولی بهم ارور میده که"strfilename مقدارش null است" در این متغییر باید آدرس فایلی که قراره پرینت بگیره ذخیره بشه منظور فرم مورد نظره هرچی می نویسم یا می گه این آدرسو پیدا نمی کنه یا null باید چه کار کنم خسته شدم دیگه یه کمکی بکنید ممنون میشم.

private void button1_Click(object sender, EventArgs e)
{
PrintDocument objprintdoc = new PrintDocument();
objprintdoc.DocumentName = "fish";
printDialog1.AllowPrintToFile = true;
printDialog1.AllowSelection = true;
printDialog1.AllowSomePages = true;
printDialog1.Document = objprintdoc;
if (printDialog1.ShowDialog() == DialogResult.OK)
{
//strfilename = "D:\\my project\\hoghoogh\\hoghoogh\\fish.cs";
objstreamtoprint = new StreamReader(strfilename);
objprintfont = new Font("Arial", 10);
objprintdoc.PrinterSettings = printDialog1.PrinterSettings;
objprintdoc.PrintPage += new PrintPageEventHandler(prtpage);
objprintdoc.Print();
objstreamtoprint.Close();
objstreamtoprint = null;
}

//capturescreen();
//printdoc1.Print();
}
private void prtpage(object sender, PrintPageEventArgs e)
{
float snglinesperpage = 0;
float sngverticalposition = 0;
int intlinecount = 0;
float sngleftmargin=e.MarginBounds.Left;
float sngtopmargin=e.MarginBounds.Top;
string strline;
snglinesperpage = e.MarginBounds.Height /
objprintfont.GetHeight(e.Graphics);
strline = objstreamtoprint.ReadLine();
while ((intlinecount < snglinesperpage) && (strline != null))
{
sngverticalposition = sngtopmargin + (intlinecount * objprintfont.GetHeight(e.Graphics));
e.Graphics.DrawString(strline, objprintfont, Brushes.Black, sngleftmargin, sngverticalposition, new StringFormat());
intlinecount = intlinecount + 1;
if (intlinecount < snglinesperpage)
{
strline = objstreamtoprint.ReadLine();
}
}
if (strline != null)
{
e.HasMorePages = true;
}
else
{
e.HasMorePages = false;
}
}

ali_habibi1384
سه شنبه 28 شهریور 1391, 18:36 عصر
من با دو خط از فرمم پرينت ميگيرم : ببين بدردت ميخوره:
private void btnPrint_Click(object sender, EventArgs e)
{
// Show Page Setup dialog
chart1.Printing.PageSetup();

// Print preview chart
chart1.Printing.PrintPreview();

// Print chart (without Printer dialog)
//chart1.Printing.Print(false);
}

star_game
سه شنبه 28 شهریور 1391, 19:45 عصر
این chart واسه چیه ؟ چطوری باید اطلاعات فرمم رو چاپ کنم ؟ کیفیتش چطوره؟بالاست؟

star_game
سه شنبه 28 شهریور 1391, 19:56 عصر
من با نوشتن این خط کد" strfilename = "D:\\my project\\hoghoogh\\hoghoogh\\fish.cs تونستم پرینت بگیرم ولی بجای فرمم از کدای فرمم پرینت می گیره چون آدرس مال کداست.
چطوری آدرس فرم رو بدم فرم را چاپ کنه؟؟؟؟؟؟
تورو خدا کمک کنید.مرسی

programerinfonet
سه شنبه 28 شهریور 1391, 20:10 عصر
http://barnamenevis.org/showthread.php?233274-%D9%BE%D8%B1%DB%8C%D9%86%D8%AA-%D8%A7%D8%B2-%D9%81%D8%B1%D9%85-%D8%AF%D8%B1-C

star_game
سه شنبه 28 شهریور 1391, 20:17 عصر
اینو امتحان کردم کیفیتش پایینه بدرد نمی خوره
یکی به من بگه چطوری آدرس فرمی که لود شده رو به متغییر بدم

star_game
سه شنبه 28 شهریور 1391, 22:07 عصر
یعنی هیچکس نمیتونه کمکم کنه؟؟؟؟؟؟؟؟؟؟؟؟؟؟

star_game
چهارشنبه 29 شهریور 1391, 09:21 صبح
دوستان ممنون می شم وقتتون را در اختیار من بگذارید و بگید چطوری آدرس فرمی که لود می شه را در یک متغییر قرار داد؟؟