Well, my friend. try this in PrintPage event of your PrintDocument object:
<br />
private int LastPrintedLine = 0;<br />
<br />
private void PrintDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)<br />
{<br />
SizeF LineSize = new SizeF();<br />
<br />
PointF UpperLeftPoint = new PointF(e.MarginBounds.X, e.MarginBounds.Y);<br />
<br />
RectangleF Rect = new RectangleF();<br />
<br />
while (true)<br />
{<br />
LineSize = e.Graphics.MeasureString(TextHolder.Lines[LastPrintedLine], TextHolder.Font);<br />
<br />
UpperLeftPoint.Y += Rect.Height;<br />
<br />
Rect.Location = UpperLeftPoint;<br />
<br />
Rect.Width = e.MarginBounds.Width;<br />
<br />
int LineSegments = (int)(LineSize.Width / e.MarginBounds.Width) + 1;<br />
<br />
Rect.Height = LineSize.Height * LineSegments;<br />
<br />
e.Graphics.DrawString(TextHolder.Lines[LastPrintedLine], TextHolder.Font,<br />
new SolidBrush(Color.Black), Rect);<br />
<br />
LastPrintedLine++;<br />
<br />
if (UpperLeftPoint.Y > e.MarginBounds.Height) break;<br />
<br />
<br />
if (LastPrintedLine == TextHolder.Lines.Length)<br />
{<br />
e.HasMorePages = false;<br />
break;<br />
}<br />
else<br />
e.HasMorePages = true;<br />
} <br />
}<br />
-------------------------
Regards
H.Maadani