我有一个从集合中的项目创建列表的应用程序。然后,对于每个条目,我将其添加到一个空字符串中,然后在其末尾添加一个换行符。理想情况下,字符串应该是这样的:
List1 nList2 nList3 n
生成此字符串后,我将其发送回pdf的占位符中。如果我在一个简单的控制台应用程序中尝试这段代码,它会在换行符上打印所有内容。但在我的现实生活中,我必须把它打印成pdf格式。项之间只显示空格,而不显示换行符。如何才能格式化我的字符串,使pdf识别换行符,而不是忽略它?
下面是生成带有换行符的字符串的代码。
Private Function ConcatPlacardNumbers(ByVal BusinessPlacardCollection As BusinessPlacardCollection) As String
Dim PlacardNumbersList As String = Nothing
Dim numberofBusinessPlacards As Long = BusinessPlacardCollection.LongCount()
For Each BusinessPlacard As BusinessPlacard In BusinessPlacardCollection
numberofBusinessPlacards = numberofBusinessPlacards - 1
PlacardNumbersList = String.Concat(PlacardNumbersList, BusinessPlacard.PlacardNumber)
If numberofBusinessPlacards <> 0 Then
PlacardNumbersList = String.Concat(PlacardNumbersList, Enviornment.newline)
End If
Next
Return PlacardNumbersList
End Function
尝试添加u2028
:
Private Function ConcatPlacardNumbers(ByVal BusinessPlacardCollection As _
BusinessPlacardCollection) As String
Dim PlacardNumbersList As New StringBuilder()
For Each BusinessPlacard As BusinessPlacard In BusinessPlacardCollection
PlacardNumbersList.Append(BusinessPlacard.PlacardNumber)
'PlacardNumbersList.Append(ChrW(8232)) 'u2028 line in decimal form
PlacardNumbersList.Append(ChrW(8233)) 'u2029 paragr. in decimal form
Next
Return PlacardNumbersList.ToString
End Function
段落用u2029
代替。查看更多细节:
http://blogs.adobe.com/formfeed/2009/01/paragraph_breaks_in_plain_text.html
答案取决于用来生成PDF的工具。由于换行不起作用,我实际上会尝试n
。另一种可能性是PDF生成代码没有设计成发出多行;您只能通过检查生成代码来确定这一点。
Private Function ConcatPlacardNumbers(ByVal BusinessPlacardCollection As BusinessPlacardCollection) As String
Dim PlacardNumbersList As New System.Text.StringBuilder(10000)
For Each BusinessPlacard As BusinessPlacard In BusinessPlacardCollection
If PlacardNumbersList.Length <> 0 Then
' This is equivalent to Environment.NewLine
'PlacardNumbersList.AppendLine()
' The attempt to use n
PlacardNumbersList.Append("n")
End If
PlacardNumbersList.Append(BusinessPlacard.PlacardNumber)
Next
Return PlacardNumbersList.ToString
End Function
请注意,您也不需要跟踪标语牌编号:您可以在每次通过的第一个项目之后的上一个项目的末尾添加一个换行符。