PDFsharp换行符

我试图获得新的行,但如果我使用\n它没有任何方式通过添加一些字符串像\r\n (不起作用)的新行

 gfx.DrawString("Project No \n" + textBoxProjNumber.Text, fontUnder, XBrushes.Black, 230, 95); 

不起作用。

你试过XTextFormatter类吗?

见这里: http : //www.pdfsharp.net/wiki/TextLayout-sample.ashx

代码段:

 PdfDocument document = new PdfDocument(); PdfPage page = document.AddPage(); XGraphics gfx = XGraphics.FromPdfPage(page); XFont font = new XFont("Times New Roman", 10, XFontStyle.Bold); XTextFormatter tf = new XTextFormatter(gfx); XRect rect = new XRect(40, 100, 250, 220); gfx.DrawRectangle(XBrushes.SeaShell, rect); tf.DrawString(text, font, XBrushes.Black, rect, XStringFormats.TopLeft); 

这就是我所做的不涉及使用Rect类:

我有一个定义的右侧限制并确定当前字符串是否大于设定的边界。 如果是的话,我写了。 否则,我继续添加它。

 foreach (string field in temp) { if (field == string.Empty) { continue; } else { tempSB.Clear(); tempSB.Append(sb.ToString()); tempSB.Append(field).Append(", "); //append the incoming value to SB for size testing if (gfx.MeasureString(tempSB.ToString(), defaultFont).Width > 500) //if the incoming string is bigger than the right bounds, write it and clear SB { gfx.DrawString(sb.ToString(), defaultFont, blackBrush, 50, currentLine + defaultSpacing); currentLine += 15; sb.Clear(); sb.Append(" " + field).Append(","); //add the overflow to the beginning of the next line } else { sb.Append(field).Append(", "); //if it is not too big, append it } } } if (sb.Length > 0 && sb[sb.Length - 1] == ',') sb.Length--; gfx.DrawString(sb.ToString(), defaultFont, blackBrush, 50, currentLine + defaultSpacing); //write out whatever has not already been written out 

我知道我迟到了这个问题,但我希望它可以帮助别人。