PDA

View Full Version : ارسال محتویات تکست باکس به پرینتر



zaniar_vb6
سه شنبه 15 تیر 1389, 22:59 عصر
چگونه میتوان محتویات تکست باکس را به پرینتر ارسال کرد .
همچنین چگونه میتوان یک نما شبیه print view درست کرد؟( با استتفاده از تکست باکس)

sinashahab
سه شنبه 15 تیر 1389, 23:49 عصر
یعنی می خوای محتوای یه تکست باکس رو پرینت بگیری ؟

zaniar_vb6
چهارشنبه 16 تیر 1389, 09:36 صبح
بله
با کلیک دکمه ای محتویات تسکت باکس پرینت بشه
تریجیحا قبلش در یک پنجره مثل print view نمایش داده بشه

sinashahab
چهارشنبه 16 تیر 1389, 11:29 صبح
اینا رو اول وارد کن :


using System.IO;
using System.Drawing.Printing;

این متغییر ها رو بساز‌ :


private string strNameFile;
private StreamReader objStreamToPrint;
private Font objPrintFont;

بعدش این متد رو ایجاد کن :

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;
}

}

بعدش هم این کد رو برای دکمه بنویس :


strNameFile = "SSh Group";


PrintDocument objPrintDocument = new PrintDocument();

objPrintDocument.DocumentName = "SSh Group Print";

printDialog1.AllowPrintToFile = false;
printDialog1.AllowSelection = false;
printDialog1.AllowSomePages = false;

printDialog1.Document = objPrintDocument;

if (printDialog1.ShowDialog() == DialogResult.OK)
{
objStreamToPrint = new StreamReader(strNameFile);
objPrintFont = new Font("Aria",10);
objPrintDocument.PrinterSettings = printDialog1.PrinterSettings;
objPrintDocument.PrintPage += new PrintPageEventHandler(prtPage);
objPrintDocument.Print();
objStreamToPrint.Close();
objStreamToPrint = null;
}

دیگه خودت باید strNameFile رو به هر جایی که خواستی پرینت بگیری تغییر بدی .ژ

سوالی بود در خدمتم .:لبخند:

zaniar_vb6
چهارشنبه 16 تیر 1389, 12:10 عصر
ممنون
فقط این جمله آخر رو متوجه نشدم strnamefile بخ کجا ؟
مگر اطلاعات به پرینتر ارسال نمیشه؟(مستقیم)
برای print view چی به ذهنتون میرسه؟
هم در فرم چاپ بشه و هم بشه زوم کرد و خلاصه امکانات پرینتر ویو

sinashahab
چهارشنبه 16 تیر 1389, 12:15 عصر
به این جمله که نوشتم دقت کن :

strNameFile = "SSh Group"
حالا اگه بخوای پرینت بگیری SSh Group پرینت میشه .
اگه بخوای یه تکست باکس رو پرینت بگیری باید این کرد رو به جاش بزاری :

strNameFile = TextBox1.Text

فقط تشکرت کجا رفت ؟:چشمک: