star_game
سه شنبه 28 شهریور 1391, 19: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;
}
}
من می خوام از یک صفحه در فرمم پرینت بگیرم کدام رو هم از روی 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;
}
}