如何在 PdfPCell 中缩进文本
How to indent text inside a PdfPCell
我想在 PdfPCell
中引入文本,并且我希望缩进部分文本。
这是我试过的:
PdfPCell cell21 = new PdfPCell(new Phrase("TO:\n\n name"));
cell21.setColspan(3);
cell21.setFixedHeight(45f);
table.completeRow();
结果如下所示:
TO:
name:
但我希望它看起来像这样:
TO:
name:
换句话说:我在 "name" 前面添加的空格丢失了。我该如何解决这个问题?
您使用的是哪个版本的 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 个单元格的 table,其中两个处于文本模式(前两个),两个处于复合模式(后两个)。这导致文件:indentation_in_cell.pdf:
如您所见,结果符合预期。
在第一个单元格中,我们按照您的方式使用了 "TO:\n\n name"
。保留了空格,尽管之前的版本可能存在导致空格丢失的错误。
在第二个单元格中,我们使用 "TO:\n\n\u00a0\u00a0\u00a0name"
引入 ALT+0160 字符,正如@RC 在评论中所建议的那样。
在第三个单元格中,我们切换到复合模式,并引入了 10pt 的缩进,而不是使用空格。复合模式意味着 iText 不再查看单元格的属性,而是查看组成单元格的元素的属性。
在第四个单元格中,我们更改包含文本的 Paragraph
的缩进。如您所见,它现在在右侧显示轮廓。
我想在 PdfPCell
中引入文本,并且我希望缩进部分文本。
这是我试过的:
PdfPCell cell21 = new PdfPCell(new Phrase("TO:\n\n name"));
cell21.setColspan(3);
cell21.setFixedHeight(45f);
table.completeRow();
结果如下所示:
TO:
name:
但我希望它看起来像这样:
TO:
name:
换句话说:我在 "name" 前面添加的空格丢失了。我该如何解决这个问题?
您使用的是哪个版本的 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 个单元格的 table,其中两个处于文本模式(前两个),两个处于复合模式(后两个)。这导致文件:indentation_in_cell.pdf:
如您所见,结果符合预期。
在第一个单元格中,我们按照您的方式使用了 "TO:\n\n name"
。保留了空格,尽管之前的版本可能存在导致空格丢失的错误。
在第二个单元格中,我们使用 "TO:\n\n\u00a0\u00a0\u00a0name"
引入 ALT+0160 字符,正如@RC 在评论中所建议的那样。
在第三个单元格中,我们切换到复合模式,并引入了 10pt 的缩进,而不是使用空格。复合模式意味着 iText 不再查看单元格的属性,而是查看组成单元格的元素的属性。
在第四个单元格中,我们更改包含文本的 Paragraph
的缩进。如您所见,它现在在右侧显示轮廓。