This should work for you
Printing RTF with Formatting
-
04-10-2022 - |
Question
I can get the text to come out correctly with the code below. The code below has restrictions, however. It will cut off anything after one page, and won't show any formatting.
If I use message.Rtf
instead of message.Text
, it spits out RTF codes like:
{\rtf1\ansansicpg1252\deff0
How can I get things to print with formatting, and more than one page? Every link on Google is purple, to no avail.
private void printerHandler(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
StringReader reader = new StringReader(message.Text);
float LinesPerPage = 0;
float LeftMargin = e.MarginBounds.Left;
float TopMargin = e.MarginBounds.Top;
string Line = null;
Font PrintFont = this.message.Font;
SolidBrush PrintBrush = new SolidBrush(Color.Black);
LinesPerPage = e.MarginBounds.Height / PrintFont.GetHeight(e.Graphics);
RectangleF rect = new RectangleF(e.MarginBounds.Left, e.MarginBounds.Top, e.MarginBounds.Right - e.MarginBounds.Left, e.MarginBounds.Bottom - e.MarginBounds.Top);
Line = reader.ReadToEnd();
e.Graphics.DrawString(Line, PrintFont, PrintBrush, rect, new StringFormat());
e.HasMorePages = false;
PrintBrush.Dispose();
}
Solution
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow