Hello!
I have a class called Simple Editor below where most of it is from a book
that I'm reading.
If I want to add a Header and a Footer to each page printed.
We can just as an example want to have the filename printed on beginning and
the end of each page printed.
can somebody give me a hint how I best accomplish that?
The text that is to be printed is in a multiline textbox and is named
textBoxEdit.
public partial class SimpleEditorForm : Form
{
private string filename = "Untitled";
private string[] lines;
private int linesPrinted;
private Brush printBrush;
public SimpleEditorForm() //User defined C-tor
{ InitializeComponent(); }
protected void OpenFile()
{
try
{
textBoxEdit.Clear();
textBoxEdit.Text = File.ReadAllText(filename);
}
catch(IOException ex)
{
MessageBox.Show(ex.Message, "Simple Editor",
MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
private void OnFileNew(object sender, EventArgs e)
{
filename = "Untitled";
SetFormTitle();
textBoxEdit.Clear(); // clear textbox
}
private void OnFileOpen(object sender, EventArgs e)
{
if (dlgOpenFile.ShowDialog() == DialogResult.OK)
{
filename = dlgOpenFile.FileName;
SetFormTitle();
OpenFile();
}
}
private void OnFileSave(object sender, EventArgs e)
{
if (filename == "Untitled")
OnFileSaveAs(sender, e);
else
SaveFile();
}
private void OnFileSaveAs(object sender, EventArgs e)
{
if (dlgSaveFile.ShowDialog() == DialogResult.OK)
{
filename = dlgSaveFile.FileName;
SetFormTitle();
SaveFile();
}
}
private void SaveFile()
{
try
{
File.WriteAllText(filename, this.textBoxEdit.Text);
}
catch(IOException ex)
{
MessageBox.Show(ex.Message, "Simple Editor",
MessageBoxButtons.AbortRetryIgnore,MessageBoxIcon. Hand);
}
}
protected void SetFormTitle()
{
Text = new FileInfo(filename).Name + "- Simple Editor";
}
private void OnFilePrint(object sender, EventArgs e)
{
if (this.textBoxEdit.SelectedText != "")
dlgPrint.AllowSelection = true;
if (dlgPrint.ShowDialog() == DialogResult.OK)
printDocument.Print();
}
private void OnFilePrintPreview(object sender, EventArgs e)
{ dlgPrintPreview.ShowDialog(); }
private void OnFilePageSetup(object sender, EventArgs e)
{ dlgPageSetup.ShowDialog(); }
private void OnExit(object sender, EventArgs e)
{ Application.Exit(); }
private void OnPrintPage(object sender, PrintPageEventArgs e)
{
int x = e.MarginBounds.Left;
int y = e.MarginBounds.Top;
while (linesPrinted < lines.Length) //antal rader att printa
{
e.Graphics.DrawString(lines[linesPrinted++],
this.fontDialog.Font, printBrush, x, y);
y += textBoxEdit.Font.Height;
if (y >= e.MarginBounds.Bottom)
{
e.HasMorePages = true;
return;
}
}
}
private void OnBeginPrint(object sender, PrintEventArgs e)
{
char[] param = { '\n' };
if (dlgPrint.PrinterSettings.PrintRange == PrintRange.Selection)
lines = textBoxEdit.SelectedText.Split(param);
else
lines = textBoxEdit.Text.Split(param);
//int i = 0;
//char[] trimParam = { '\r' };
//foreach (string s in lines)
// lines[i++] = s.TrimEnd(trimParam);
if (this.dlgPrint.PrinterSettings.SupportsColor)
printBrush = new SolidBrush(textBoxEdit.ForeColor);
else
printBrush = Brushes.Black;
}
private void OnEndPrint(object sender, PrintEventArgs e)
{ lines = null; }
private void fontToolStripMenuItem_Click(object sender, EventArgs e)
{
if (fontDialog.ShowDialog() == DialogResult.OK)
textBoxEdit.Font = fontDialog.Font;
}
private void colorToolStripMenuItem_Click(object sender, EventArgs
e)
{
if (colorDialog.ShowDialog() == DialogResult.OK)
textBoxEdit.ForeColor = colorDialog.Color;
}
}
//Tony 3 1792
On Sat, 12 Jul 2008 07:12:42 -0700, Tony Johansson
<jo*****************@telia.comwrote:
Hello!
I have a class called Simple Editor below where most of it is from a book
that I'm reading.
If I want to add a Header and a Footer to each page printed.
We can just as an example want to have the filename printed on beginning
and
the end of each page printed.
can somebody give me a hint how I best accomplish that?
Just calculate from the page boundary where you want the header and
footer, and then draw the text you want there.
Pete
Hello!
So you mean that the best way is just to use another DrawString to draw for
example the filename.
//Tony
"Peter Duniho" <Np*********@nnowslpianmk.comskrev i meddelandet
news:op***************@petes-computer.local...
On Sat, 12 Jul 2008 07:12:42 -0700, Tony Johansson
<jo*****************@telia.comwrote:
>Hello!
I have a class called Simple Editor below where most of it is from a book that I'm reading.
If I want to add a Header and a Footer to each page printed. We can just as an example want to have the filename printed on beginning and the end of each page printed. can somebody give me a hint how I best accomplish that?
Just calculate from the page boundary where you want the header and
footer, and then draw the text you want there.
Pete
On Sat, 12 Jul 2008 10:11:47 -0700, Tony Johansson
<jo*****************@telia.comwrote:
So you mean that the best way is just to use another DrawString to draw
for
example the filename.
Yes, that's exactly what I mean. This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics
by: Shiz |
last post by:
I currently have a Form with Option buttons (to give you the option of
sorting by name, or by Field, etc), these are referenced in a module
which then formats the report contingent on the option...
|
by: John Crowley |
last post by:
I keep running into this over and over again...
I want a block server control that renders a header and footer, and child
controls in between.
But I don't want a templated control, for the...
|
by: LilBuh |
last post by:
hi there :)
i ve been looking for some time a way to print an html file from vb.net
i came up with this code for printing and removing the header and footer
from IE
then once the printing is done...
|
by: LilBuh |
last post by:
Hello :)
this is a repost... i ve been looking for a way since last week ...
i have a template html file that i modify from my code... i need to print
this file without IE's Header and Footer
or...
|
by: Neil Jarman |
last post by:
Hi,
I would like to allow users to print a page, but I want to suppress the
header and footer that appear by default.
I gather its done with a style sheet.
Please advise.
Many Thanks,
|
by: xkeops |
last post by:
Thinking of creating a website, most of the pages will have a general
toolbar
menu, a content and a footer.
The content will be the only one who's gonna change but the rest
(header,footer)
will...
|
by: Grischa Brockhaus |
last post by:
Hi,
I'm trying to produce a div layout containing a header on the top with fixed height, a footer on the
bottom using fixed height and a content layer using what's left of the browsers window.
...
|
by: srk |
last post by:
hi to all,
i need some help , my problem is that i have to generate a
word document withe the data from data base and it should be displayed
as tables in word and i have to insert some header and...
|
by: KoosHopeloos |
last post by:
L.S.,
I'm trying to make a layout which is completely fixed in width and
height if needed by using three divs rows (header, content, footer)
which have each 3 div again to be able to play around...
|
by: Noorain |
last post by:
I designed a site. i want to header,footer,left & right column fixed but body information only scrolling. this site screen to be 800/600 px. i designed this way but when i used position fixed all...
|
by: Charles Arthur |
last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
|
by: BarryA |
last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
|
by: nemocccc |
last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
|
by: Hystou |
last post by:
There are some requirements for setting up RAID:
1. The motherboard and BIOS support RAID configuration.
2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers,...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
|
by: agi2029 |
last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome a new...
| |