在文本中间的itextsharp新行?

时间:2015-07-11 11:00:45

标签: vb.net itextsharp

我的问题是如何在新行中创建文本我试过“\ n”,但它没有用。我的代码:

 Dim cell1 As New PdfPCell(New Phrase("line 1 \n line2 \n line3"))
    cell1.Border = 0
    cell1.HorizontalAlignment = 0
    table.AddCell(cell1)

2 个答案:

答案 0 :(得分:2)

使用CHR(10)而不是使用C#'\'转义字符。

答案 1 :(得分:0)

您目前正在使用文字模式创建PdfPCell。这仅适用于简单文本。见Right aligning text in PdfPCell

只要您有更多文字和其他类型的内容(如图片),最好使用复合模式并使用不同的{{1}创建不同行的单元格}对象而不是ParagraphPhrase不应该有换行符。)

您的代码将如下所示:

Phrase

请自己(尤其是那些必须维护代码的人)帮忙,不要使用以下行:

Dim cell1 As New PdfPCell()
cell1.Border = PdfPCell.NO_BORDER
Dim p1 As New Paragraph("line 1");
p1.Alignment = Element.ALIGN_LEFT;
cell.AddElement(p1);
Dim p2 As New Paragraph("line 2");
p1.Alignment = Element.ALIGN_CENTER
cell.AddElement(p2)
Dim p3 As New Paragraph("line 3");
p1.Alignment = Element.ALIGN_RIGHT
cell.AddElement(p3)
table.AddCell(cell1)

将其替换为:

cell1.Border = 0

同样适用:

cell1.Border = PdfPCell.NO_BORDER

将其替换为:

cell1.HorizontalAlignment = 0

你会注意到那些必须阅读你代码的人会开始更加尊重你,因为编写易于阅读和理解的代码就是你尊重他们的证明。

注意:只要您使用cell1.HorizontalAlignment = Element.ALIGN_LEFT 方法,PdfPCell就会从文本模式切换到复合模式。在复合模式中,将忽略以下行:

AddElement()

复合模式中,单元格将使用不同组件的对齐方式,以支持在单元格级别定义的对齐方式。