UYGULAMAYI İNDİR
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;
using System.Reflection;
namespace PrintDocumentFile
{
public partial class Form1 : Form
{
OpenFileDialog openfiledialog;
StreamReader filereader;
PrintDocument printdocument;
PrintPreviewDialog printPreviewDialog;
Font ArialFont;
List fileLineList;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
//dosyadan alınacak satırları tutacak bir liste oluştur
fileLineList = new List< string >();
// 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();
printPreviewDialog = new PrintPreviewDialog();
//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)
{
totalLinecount = 0;
//Call Print Method
printdocument.Print();
//Close the reader
if (filereader != null)
{
filereader.Close();
}
}
int totalLinecount = 0;
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 pageLineCount = 0;
float leftMargin = printpageevent.MarginBounds.Left;
float topMargin = printpageevent.MarginBounds.Top;
//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 (pageLineCount < linesPerPage && totalLinecount < fileLineList.Count)
{
//Calculate the starting position
yposition = topMargin + (pageLineCount * ArialFont.GetHeight(g));
//Draw text
g.DrawString(fileLineList[totalLinecount], ArialFont, Brushes.Black, leftMargin, yposition, new StringFormat());
//Move to next line
totalLinecount++;
pageLineCount++;
}
//If PrintPageEventArgs has more pages to print
if (totalLinecount < fileLineList.Count)
{
printpageevent.HasMorePages = true;
}
else
{
printpageevent.HasMorePages = false;
}
}
private void btnBrowse_Click(object sender, EventArgs e)
{
if (openfiledialog.ShowDialog() == DialogResult.OK)
{
//okunan satırların saklanacağı listeyi temizle
fileLineList.Clear();
//textbox1 içinde açılan dosyanın adresini yazdıralım
textBox1.Text = openfiledialog.FileName;
string filename = textBox1.Text.ToString();
//Create a StreamReader object for reading file contents
filereader = new StreamReader(filename);
string satir;
while ((satir = filereader.ReadLine()) != null)
{
//dosyadan okunan satırları listeye ekleyelim
fileLineList.Add(satir);
}
}
}
private void btnOnizleme_Click(object sender, EventArgs e)
{
printPreviewDialog.Document = printdocument;
printPreviewDialog.ShowDialog();
}
private void btnResourceFilePrint_Click(object sender, EventArgs e)
{
totalLinecount = 0;
Assembly assembly = Assembly.GetExecutingAssembly();
Stream stream = assembly.GetManifestResourceStream("PrintDocumentFile.Resources.MyDocument.txt");
StreamReader reader = new StreamReader(stream);
string satir;
//okunan satırların saklanacağı listeyi temizle
fileLineList.Clear();
while ((satir = reader.ReadLine()) != null)
{
//dosyadan okunan satırları listeye ekleyelim
fileLineList.Add(satir);
}
//Call Print Method
printdocument.Print();
}
}
}
Hiç yorum yok :
Yorum Gönder