文本的某些部分左对齐,其他右对齐在itext中的同一行

时间:2014-07-11 06:32:31

标签: java pdf pdf-generation itext

我想创建一个pdf,其名称和联系人编号左对齐,并且电子邮件右对齐在itext中与名称相同的行。我该如何实现呢?我应该使用矩形方法吗?如果是,那么应该将哪些值分配给它的参数以将它们放在同一行上?

2 个答案:

答案 0 :(得分:3)

使用pdfpTable左右对齐同一行中的文本。以下是您可以遵循的方法。

 Document document = new Document(PageSize.A4, 30, 30, 150, 50);     
    FileOutputStream fos = new FileOutputStream("filepath");
    PdfWriter writer = PdfWriter.getInstance(document,fos );
    document.open();

    Rectangle rect = writer.getPageSize();

    float[] columnWidths = {2f, 1f,2.5f};
    PdfPTable table = new PdfPTable(columnWidths);
    table.setTotalWidth(527);
    table.getDefaultCell().setBorder(Rectangle.NO_BORDER);
    table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_LEFT);
    table.addCell("abc left");
    table.addCell("");
    table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_RIGHT);
    table.addCell("abc right");

    table.writeSelectedRows(
                        0, -1, rect.getLeft(30), rect.getTop(20), writer.getDirectContent());
    document.close();

答案 1 :(得分:1)

您可以使用包含2列的表格来执行此操作。

将边框设置为不可见的使用:cell.setBorder(Rectangle.NO_BORDER); 要将表格宽度设置为100%,请使用:table.setWidthPercentage(100);