c# winform.新手求问 关于PrintDocument 字符串换行打印
新手求问 .如何使用 PrintDocument 字符串换行打印 呢 ??
PrintPage 中 完整代码.
DrawString
- C# code
// 获取字符串.// 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++;}
[解决办法]
\r\n 换行
[解决办法]
string outStr = "第一行"+Environment.NewLine+"第二行。"
.....,
其实就是在需要换行的地方加回车换行符。
[解决办法]
"\r\n"就可以
[解决办法]
g.DrawString(line, titleFont, brush ,leftMargin, yPosition, fmt);
GDI+绘制 line字符串 在(leftMargin,yPosition)位置绘制 跟换行有啥关系啊,看不懂