Пожалуйста, посмотрите пример LeftRight . Он предлагает два разных решения для вашей проблемы:
[/g2]
Решение 1: Использовать клей
Клеем я имею в виду специальный Chunk
, который действует как разделитель, который разделяет два (или более) других объекта Chunk
:
Chunk glue = new Chunk(new VerticalPositionMark());
Paragraph p = new Paragraph("Text to the left");
p.add(new Chunk(glue));
p.add("Text to the right");
document.add(p);
Таким образом, вы будете иметь "Text to the left"
с левой стороны и "Text to the right"
справа .
Решение 2: используйте PdfPTable
Предположим, что в какой-то день кто-то попросит вас поставить что-то посредине, тогда использование PdfPTable
доказательство:
PdfPTable table = new PdfPTable(3);
table.setWidthPercentage(100);
table.addCell(getCell("Text to the left", PdfPCell.ALIGN_LEFT));
table.addCell(getCell("Text in the middle", PdfPCell.ALIGN_CENTER));
table.addCell(getCell("Text to the right", PdfPCell.ALIGN_RIGHT));
document.add(table);
В вашем случае вам нужно только что-то слева и что-то вправо, поэтому вам нужно создать таблицу с двумя столбцами: table = new PdfPTable(2)
.
Если вы блуждаете по методу getCell()
, это выглядит так:
public PdfPCell getCell(String text, int alignment) {
PdfPCell cell = new PdfPCell(new Phrase(text));
cell.setPadding(0);
cell.setHorizontalAlignment(alignment);
cell.setBorder(PdfPCell.NO_BORDER);
return cell;
}
Решение 3: Обозначить текст
Это объясняется в ответе на этот вопрос: Как оправдывать текст с помощью iTextSharp?
Однако это приведет к странным результатам, как только в ваших строках будут пробелы. Например: он будет работать, если у вас есть "Name:ABC"
. Это не сработает, если вы "Name: Bruno Lowagie"
, когда "Bruno"
и "Lowagie"
будут двигаться в направлении середины, если вы оправдываете линию.