Itext7中Paragraph添加换行无效,寻求解决办法
iText7 Paragraph换行问题解决方法
首先,你遇到的问题是因为New Text("\n")把\n当成普通字符串输出了,iText7不会解析这个转义序列。下面是几种正确的换行方式:
方法1:使用VB.NET原生换行符
直接用vbCrLf(Windows标准换行)或者Environment.NewLine替换你的"\n":
Dim P As Paragraph = New Paragraph() With P .SetTextAlignment(TextAlignment.LEFT) .SetFontSize(10) .Add(New Text("My Company LLC. ")) .Add(New Text(vbCrLf)) .Add(New Text("Company Address")) End With
方法2:直接向Paragraph添加换行符(无需Text包装)
可以跳过Text对象,直接把换行符添加到Paragraph中:
Dim P As Paragraph = New Paragraph() With P .SetTextAlignment(TextAlignment.LEFT) .SetFontSize(10) .Add("My Company LLC. ") .Add(vbCrLf) .Add("Company Address") End With
方法3:使用iText7内置的换行方法
iText7的Paragraph提供了专门的AddNewLine()方法,更符合API规范:
Dim P As Paragraph = New Paragraph() With P .SetTextAlignment(TextAlignment.LEFT) .SetFontSize(10) .Add(New Text("My Company LLC. ")) .AddNewLine() .Add(New Text("Company Address")) End With
关于SetFixedPosition的问题
SetFixedPosition是用来设置元素在页面上的绝对坐标位置的,和文本换行没有任何关系,用它不仅解决不了你的问题,反而会破坏正常的文档布局,完全没必要用。
内容的提问来源于stack exchange,提问作者dashley
相关产品推荐
相关产品推荐

