Kaydol:
Kayıt Yorumları
(
Atom
)
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; using System.Drawing.Printing; namespace PrintDocumentFile { public partial class Form1 : Form { OpenFileDialog openfiledialog; StreamReader filereader; PrintDocument printdocument; Font ArialFont; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { // Create openfile dialog object. openfiledialog = new OpenFileDialog(); openfiledialog.Title = "C Sharp Applications Open File Dialog"; openfiledialog.InitialDirectory = Application.StartupPath; openfiledialog.Filter = "Text files (*.txt) | .txt | All files (*.*) | *.*"; openfiledialog.FilterIndex = 2; openfiledialog.RestoreDirectory = true; //Create a Arial font with size 12 ArialFont = new Font("Arial",12); //Create a PrintDocument object printdocument = new PrintDocument(); //Add PrintPage event handler printdocument.PrintPage += new PrintPageEventHandler(printdocument_PrintPage); printdocument.BeginPrint += new PrintEventHandler(printdocument_BeginPrint); printdocument.EndPrint += new PrintEventHandler(printdocument_EndPrint); } void printdocument_EndPrint(object sender, PrintEventArgs e) { lblStatus.Text = "The document is printed "; } void printdocument_BeginPrint(object sender, PrintEventArgs e) { lblStatus.Text = "Printing is completed "; } private void btnPrint_Click(object sender, EventArgs e) { //Call Print Method printdocument.Print(); //Close the reader if (filereader != null) { filereader.Close(); } } private void printdocument_PrintPage(object sender, PrintPageEventArgs printpageevent) { //Get the Graphics object from the print page event Graphics g = printpageevent.Graphics; float linesPerPage = 0; float yposition = 0; int count = 0; float leftMargin = printpageevent.MarginBounds.Left; float topMargin = printpageevent.MarginBounds.Top; string line = null; //Calculate the lines per page on the basis of the height of the page and the height of the font linesPerPage = printpageevent.MarginBounds.Height / ArialFont.GetHeight(g); //Now read lines one by one, using StreamReader while (count < linesPerPage && ((line = filereader.ReadLine()) != null)) { //Calculate the starting position yposition = topMargin + (count * ArialFont.GetHeight(g)); //Draw text g.DrawString(line, ArialFont, Brushes.Black, leftMargin, yposition, new StringFormat()); //Move to next line count++; } //If PrintPageEventArgs has more pages to print if (line != null) { printpageevent.HasMorePages = true; } else { printpageevent.HasMorePages = false; } } private void btnBrowse_Click(object sender, EventArgs e) { if (openfiledialog.ShowDialog() == DialogResult.OK) { textBox1.Text = openfiledialog.FileName; string filename = textBox1.Text.ToString(); //Create a StreamReader object for reading file contents filereader = new StreamReader(filename); } } private void button1_Click(object sender, EventArgs e) { printPreviewDialog1.Document = printdocument; printPreviewDialog1.ShowDialog(); } } }
Hiç yorum yok :
Yorum Gönder