2014-01-29 43 views
0

我可以使用下面的代码正确显示文本。但是,下面的代码有限制。它会在一页后切断任何内容,并且不会显示任何格式。使用格式化打印RTF

如果我使用message.Rtf,而不是message.Text,它吐出像RTF代码:

{\ RTF1 \ ansansicpg1252 \ deff0

我怎样才能得到的东西与格式打印,多比一页?谷歌上的每一个链接都是紫色的,都无济于事。

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

回答