PDA

View Full Version : چاب فایل در c#



masoudmok
پنج شنبه 20 مهر 1385, 08:50 صبح
سلامچطور می تونم محتویات فایل txt رو چاب کنم ؟ تشکر می کنم از کسانی که روی این سایت وقت گذاشتن .

احمد سامعی
پنج شنبه 20 مهر 1385, 13:48 عصر
سلامچطور می تونم محتویات فایل txt رو چاب کنم ؟ تشکر می کنم از کسانی که روی این سایت وقت گذاشتن .


دورد و صد بدرود بر مردمان ایران زمین

ساده ترین راه:
الف) یک کنترل PrintDialog و یک کنترل PrintDocument از قسمت ToolBoxs روی فرم می زاری
ب) این کد رو تو event همون PrintDocument می نویسی ( به جای Textbox.text هر استرینگی رو می تونی بزاری مثلا چیزهایی که از تو فایلت خوندی )(دو تا عدد آخر هم مکان پرینت رو تو صفحه مشخص می کنه که خودت تنظیم می کنی)(برای هر خط چاپ جداگانه باید e.Graphicsd بنویسی)



Font my_f = new Font("B Zar", 10f);
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{

e.Graphics.DrawString(this.textbox.Text, my_f, Brushes.Red, 150, 88);
}

ج) این کد رو هم تو event کلیدی که رو فرمت می خوای پرینت بگیره می نویسی



// This method will set properties on the PrintDialog object and
// then display the dialog.
// Allow the user to choose the page range he or she would
// like to print.
printDialog1.AllowSomePages = true;

// Show the help button.
printDialog1.ShowHelp = true;

// Set the Document property to the PrintDocument for
// which the PrintPage Event has been handled. To display the
// dialog, either this property or the PrinterSettings property
// must be set
printDialog1.Document = printDocument1;
printDocument1.Print();


// The PrintDialog will print the document
// by handling the document's PrintPage event.

پایدار باشید.

masoudmok
شنبه 22 مهر 1385, 16:09 عصر
تشکر ولی ....
نمیشه یه دفه کل فایل رو فرستاد رو print ؟
ممنون می شم بهم کمک کنید .

احمد سامعی
شنبه 22 مهر 1385, 21:26 عصر
تشکر ولی ....
نمیشه یه دفه کل فایل رو فرستاد رو print ؟
ممنون می شم بهم کمک کنید .

ببخشید عزیز من چون از Textbox های فرمم فقط پرینت می گیرم این چیزی که می خوای رو نمی دونم اما فکر هم نمی کنم بشه تو Help هم من چیزی که اینجوری که شما می خوای باشه ندیدم
شاید اساتید بهتر بدونن
یا علی

mahdi_negahi
شنبه 22 مهر 1385, 22:05 عصر
دوست عزیز فصد جسارت ندارم ولی کار نشد ندارد هیچ وقع در دات نت از نمیشود بحث نکن ( دوستان ضد مایکروسافت لطفا فحش ندن )

ببین دوست خوبم هر وقت میخواهی در دات نت چیزی را پرینت کنی باید یک سری اطلاعات را به دست بیاوری این اطلاعات را دات نت در اختارت نمی گزارد
این اطلاعات از این قبیل است
1-تعداد خطوط صفحه
2-فضای خالی بیت خطوط

این حساب و کتاب برای برنامه نویس بی تجربه ( من جزء همین ها هستم ) یک ذره خسته کننده است

طرز حساب کردن تعداد خطها:
بلندی صفحه تقسیم بر بلندی فونت

شمامیتوانید مکان هر خط را بصورت ضرب شماره خط در بلندی فونت پیدا کنید

در مثال زیر من این کارو کردم ولی یادت باشد که من از آرایه استفاده کردم (برای راحتی مثال) تو باید متن را از فایل text بخوانی و به همین روش چاپ کنی


// This variable keeps track of the current position in the
// array. It must be declared outside the method that handles the
// PrintPage event in order to keep from being reinitialized with
// each page
int ArrayCounter = 0;
// This method handles a PrintDocument.PrintPage event. It
// assumes an array of strings called myStrings() has been
// declared and populated elsewhere in the application. It also
// assumes a font for printing has been initialized and called
// myFont
private void PrintStrings(object sender, PrintPageEventArgs e)
{
// Declares the variables that will be used to keep track of
// spacing and paging
float LeftMargin = e.MarginBounds.Left;
float TopMargin = e.MarginBounds.Top;
float MyLines = 0;
float YPosition = 0;
int Counter = 0;
string CurrentLine;
// Calculate the number of lines per page.
MyLines = e.MarginBounds.Height /
myFont.GetHeight(e.Graphics);
// Prints each line of the file, but stops at the end of a
// page
while (Counter < MyLines && ArrayCounter <=
myStrings.GetUpperBound(0))
{
CurrentLine = myStrings[ArrayCounter];
YPosition = TopMargin + Counter *
myFont.GetHeight(e.Graphics);
e.Graphics.DrawString(CurrentLine, myFont, Brushes.Black,
LeftMargin, YPosition, new StringFormat());
Counter ++;
ArrayCounter ++;
}

// If more lines exist, print another page.
if (!(ArrayCounter == myStrings.GetUpperBound(0)))
e.HasMorePages = true;
else
e.HasMorePages = false;
}

mahdi_negahi
یک شنبه 23 مهر 1385, 08:29 صبح
راستا توی کد بالا ابنها هم تعریف شده است

Font myfont = new Font("Batang", 36, FontStyle.Regular,
GraphicsUnit.Pixel);
string Hello = "Hello World!";
e.Graphics.DrawString(Hello, myfont, Brushes.Black, 30, 30);


اینم برای اینکه رنگی پرینت کنی اگر چیز دیگری هم است بگو


// This example assumes Imports System.Drawing,
// System.Drawing.Drawing2D, and System.Drawing.Printing
Brush BrushOne;
Brush BrushTwo;
if (printDocument1.PrinterSettings.SupportsColor == true)
{
// Provides brushes in color for color printing
BrushOne = Brushes.Red;
BrushTwo = Brushes.Blue;
}
else
{
// Provides HatchedBrushes for black-and-white printing
BrushOne = new HatchBrush(HatchStyle.DarkVertical, Color.Black);
BrushTwo = new HatchBrush(HatchStyle.DashedHorizontal,
Color.Black);
}

احمد سامعی
یک شنبه 23 مهر 1385, 14:37 عصر
دوست عزیز فصد جسارت ندارم ولی کار نشد ندارد هیچ وقع در دات نت از نمیشود بحث نکن ( دوستان ضد مایکروسافت لطفا فحش ندن )



ببخشید دوست عزیز من همیشه یکم عجولم:خجالت: :خجالت: :خجالت:
بعدا یادم اومد که می شه و راستش من وقتی خودم دنبال چاپ می گشتم چاپ از فایل رو پیدا کردم ................. اما امان از این گرفتاری های زندگی و حواس پرتی:گریه: :اشتباه:

mahdi_negahi
یک شنبه 23 مهر 1385, 15:59 عصر
بعدا یادم اومد که می شه و راستش من وقتی خودم دنبال چاپ می گشتم چاپ از فایل رو پیدا کردم ................. اما امان از این گرفتاری های زندگی و حواس پرتی

خوب اگر کدش را داری برای این بنده خدا بگزار که نره کد منو تبدیل کند