2014-01-29 5 views
0

Я могу получить текст, чтобы получиться правильно с помощью кода, приведенного ниже. Однако приведенный ниже код имеет ограничения. Он отключит что-либо после одной страницы и не покажет никакого форматирования.Печать RTF с форматированием

Если я использую message.Rtf вместо message.Text, он выплевывает RTF коды как:

{\ rtf1 \ ansansicpg1252 \ deff0

Как я могу получить вещи для печати с форматированием и многое другое чем одна страница? Каждая ссылка на Google фиолетовая, но безрезультатно.

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(); 
} 

ответ

Смежные вопросы