Print_preview in WinForms
using
System;
using
System.Collections.Generic;
using
System.ComponentModel;
using
System.Data;
using
System.Drawing;
using
System.Drawing.Printing;
using
System.Drawing.Drawing2D;
using
System.Drawing.Text ;
using
System.Linq;
using
System.Text;
using
System.Windows.Forms;
namespace
print_examples1
{
public partial class Form1 : Form
{
private
Font printFont;
private
StreamReader streamToPrint;
private
PrintDocument pd = new
PrintDocument();
public
Form1()
{
InitializeComponent();
}
private
void button1_Click(object
sender, EventArgs e)
{
//print
priview button
try
{
OpenFileDialog
ofdlg = new OpenFileDialog();
ofdlg.Title = "Open Text Files";
ofdlg.DefaultExt = "txt";
ofdlg.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
ofdlg.FilterIndex = 2;
if
(ofdlg.ShowDialog() == DialogResult.OK)
{
this.Text
= ofdlg.FileName.ToString();
//string
s1=ofdlg.FileName ;
streamToPrint = new StreamReader(ofdlg.FileName);
try
{
PrintPreviewDialog
ppdlg = new PrintPreviewDialog();
ppdlg.Document = pd;
ppdlg.ShowDialog();
}
finally
{
streamToPrint.Close();
}
}
}
catch
(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private
void pd_PrintPage(object
sender, PrintPageEventArgs ev)
{
float
linesPerPage = 0;
float
yPos = 0;
int
count = 0;
float
leftMargin = ev.MarginBounds.Left;
float
topMargin = ev.MarginBounds.Top;
string
line = null;
//
Calculate the number of lines per page...
linesPerPage =
ev.MarginBounds.Height / printFont.GetHeight(ev.Graphics);
// Print
each line of the file...
while
(count < linesPerPage && ((line = streamToPrint.ReadLine()) != null))
{
yPos = topMargin + (count *
printFont.GetHeight(ev.Graphics));
ev.Graphics.DrawString(line,
printFont, Brushes.Black, leftMargin,
yPos);
count++;
}
// If
more lines exist, print another page...
if
(line != null)
ev.HasMorePages = true;
else
ev.HasMorePages = false;
}
private
void Form1_Load(object
sender, EventArgs e)
{
printFont = new Font("Arial", 10);
pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
}
}
}
No comments:
Post a Comment