日期:2014-05-18 浏览次数:20984 次
// 获取字符串. // aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\r\n aaaaaaaa bbbbbbbbbbb ccccccccccccccc \r\n dddddddddd // 某些行字符串 过长。 StringReader lineReader = new StringReader(this.GetPrintSB().ToString()); // 获得绘图对象 Graphics g = e.Graphics; // 定义字体 Font titleFont = new Font("宋体", 9, FontStyle.Bold); // 画刷 Brush brush = new SolidBrush(Color.Black); // 行数,用于计算当前高度。 int count = 0; /* * 网上查 说可以 自动换行. 但是我使用后没什么反应。不知道是不是用错了.. * 使用 Rectangle 是可以换行.. 不过每行长度不一样。高度 很难控制(并且ReadLine 下1行字符串打印的预定高度会变形)。 * 而且会按单词换行。 */ StringFormat fmt = new StringFormat(); fmt.LineAlignment = StringAlignment.Center; fmt.FormatFlags = StringFormatFlags.LineLimit; float topMargin = e.MarginBounds.Top; // 上边距 float leftMargin = 10; // 左边距 while((line=lineReader.ReadLine()) != null) { // DrawString方式进行打印。 yPosition = topMargin + (count * titleFont.GetHeight(g)); g.DrawString(line, titleFont, brush ,leftMargin, yPosition, fmt); count++; }