Okej det funkade klockrent. Nu återstår bara problemet med utskriften, där funkar det när man själv skriver in radbytet men om man kopierar in en text som inte ryms på en rad så den "själv" måste göra radbytet så finns inte radbytet med på utskriften = allt hamnar på en rad och texten kapas....
Här är koden:
private void Print_Click(object sender, EventArgs e)
{
Printing();
}
// The PrintPage event is raised for each page to be printed.
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);
// Iterate over the file, printing each line.
while (count < linesPerPage &&
((line = streamToPrint.ReadLine()) != null))
{
yPos = topMargin + (count * printFont.GetHeight(ev.Graphics));
ev.Graphics.DrawString(line, printFont, Brushes.Black,
leftMargin, yPos, new StringFormat());
count++;
}
// If more lines exist, print another page.
if (line != null)
ev.HasMorePages = true;
else
ev.HasMorePages = false;
}
// Print the file.
public void Printing()
{
try
{
streamToPrint = new StringReader(richTextBox1.Text);
printFont = new Font("Arial", 12);
PrintDocument pd = new PrintDocument();
pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
foreach (string Line in richTextBox1.Lines)
{
// Print the document.
pd.Print();
}
//finally
//{
streamToPrint.Close();
//}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}