Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 文本中间是否有新行?_Vb.net_Itextsharp - Fatal编程技术网

Vb.net 文本中间是否有新行?

Vb.net 文本中间是否有新行?,vb.net,itextsharp,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) 使用CHR(10)而不是使用C#“\”转义字符。您当前正在使用文本模式创建PdfPCell。这仅适用于简单文本。看 一旦有了更多的

我的问题是如何在新行中生成文本,我尝试了“\n”,但没有成功。我的代码:

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

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

您当前正在使用文本模式创建
PdfPCell
。这仅适用于简单文本。看

一旦有了更多的文本和其他类型的内容(如图像),最好使用复合模式,通过使用不同的
段落
对象而不是
短语
(短语不应该有新行)来创建具有不同行的单元格

您的代码将如下所示:

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 = Element.ALIGN_LEFT
这同样适用于:

cell1.HorizontalAlignment = 0
替换为:

cell1.Border = PdfPCell.NO_BORDER
cell1.HorizontalAlignment = Element.ALIGN_LEFT
您会注意到,必须阅读您的代码的人将开始更加尊重您,因为编写易于阅读和理解的代码就是您尊重他们的证明

注意:只要使用
AddElement()
方法,一个
PdfPCell
就会从文本模式切换到复合模式。在复合模式下,将忽略以下行:

cell1.HorizontalAlignment = Element.ALIGN_LEFT
在复合模式下,单元将使用不同组件的对齐方式,以支持在单元级别定义的对齐方式