我想将文本引入PdfPCell
,我希望文本的一部分缩进。
这就是我试过的:
PdfPCell cell21 = new PdfPCell(new Phrase("TO:\n\n name"));
cell21.setColspan(3);
cell21.setFixedHeight(45f);
table.completeRow();
结果如下:
TO:
name:
但我希望它看起来像这样:
TO:
name:
换句话说:我在" name"前面添加的空格迷路了。我该如何解决这个问题?
答案 0 :(得分:2)
您使用的是哪个版本的iText?我已经尝试过你的代码,它按预期工作。请查看IndentationInCell示例:
PdfPTable table = new PdfPTable(1);
PdfPCell cell;
cell = new PdfPCell(new Phrase("TO:\n\n name"));
table.addCell(cell);
cell = new PdfPCell(new Phrase("TO:\n\n\u00a0\u00a0\u00a0name"));
table.addCell(cell);
cell = new PdfPCell();
cell.addElement(new Paragraph("TO:"));
Paragraph p = new Paragraph("name");
p.setIndentationLeft(10);
cell.addElement(p);
table.addCell(cell);
cell = new PdfPCell();
cell.addElement(new Paragraph("TO:"));
p = new Paragraph("name");
p.setAlignment(Element.ALIGN_RIGHT);
cell.addElement(p);
table.addCell(cell);
在这个例子中,我创建了一个包含4个单元格的表格,两个在文本模式下(前两个),两个在复合模式下(最后两个)。这会生成文件:indentation_in_cell.pdf:
如您所见,结果与预期一致。
在第一个单元格中,我们按照您的方式使用"TO:\n\n name"
。这些空间得以保留,但以前版本中可能存在导致空间丢失的错误。
在第二个单元格中,我们使用"TO:\n\n\u00a0\u00a0\u00a0name"
在评论中引入了@RC建议的ALT + 0160字符。
在第三个单元格中,我们切换到复合模式,我们引入了10pt的缩进而不是使用空格。复合模式意味着iText不再查看单元格的属性,而是查看构成单元格的元素的属性。
在第四个单元格中,我们更改包含文本的Paragraph
的缩进。如您所见,它现在在右侧概述。