首页 文章

如何在PdfPCell中缩进文本

提问于
浏览
1

我想将文本引入 PdfPCell ,我希望部分文本缩进 . 这是我试过的:

PdfPCell cell21 = new PdfPCell(new Phrase("TO:\n\n   name"));
cell21.setColspan(3);
cell21.setFixedHeight(45f);
table.completeRow();

结果如下:

TO:

name:

但我希望它看起来像这样:

TO:

   name:

换句话说:我在“名字”前添加的空格丢失了 . 我该如何解决?

1 回答

  • 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

    enter image description here

    如您所见,结果与预期一致 .

    在第一个单元格中,我们按照您的方式使用 "TO:\n\n name" . 虽然在以前的版本中可能存在导致空间丢失的错误,但这些空间仍然保留 .

    在第二个单元格中,我们使用 "TO:\n\n\u00a0\u00a0\u00a0name" 在评论中引入了@RC建议的ALT 0160字符 .

    在第三个单元格中,我们切换到复合模式,我们引入了10pt的缩进而不是使用空格 . 复合模式意味着iText不再查看单元格的属性,而是查看构成单元格的元素的属性 .

    在第四个单元格中,我们更改包含文本的 Paragraph 的缩进 . 如您所见,现在已在右侧概述 .

相关问题