Вертикальный текст в заголовке таблицы? - PullRequest
0 голосов
/ 13 июня 2018

Как сделать так, чтобы один текст заголовка (заголовок таблицы) перемещался по вертикали, а не по горизонтали?

Я пытался добавить

setVerticalAlignment(VerticalAlignment.TOP)

Не вижу, чтобы это имело какое-либо значение.

targetTable.addHeaderCell(new Paragraph("VerticalAlignment").setFont(myFont).setFontColor(ColorConstants.BLACK)).setVerticalAlignment(VerticalAlignment.TOP));

see second and third column header text alignment

1 Ответ

0 голосов
/ 16 июня 2018

Как уже упоминалось в комментарии, это не вопрос вертикального выравнивания (ну, не в первую очередь, мы будем использовать вертикальное выравнивание для вертикальной корректировки текста в ячейках внешнего заголовка), но вместо этогоиз повернутый текст .

Вы можете создать таблицу, подобную изображению, например:

ISplitCharacters noSplit = (text, glyphPos) -> false;

Table table = new Table(4);

table.addHeaderCell(new Cell().add(new Paragraph("First Col Header"))
                              .setVerticalAlignment(VerticalAlignment.BOTTOM));
table.addHeaderCell(new Paragraph("Second Column Header")
                              .setRotationAngle(Math.PI / 2).setSplitCharacters(noSplit));
table.addHeaderCell(new Cell().add(new Paragraph("Third Column Header").setRotationAngle(Math.PI / 2)
                              .setSplitCharacters(noSplit)).setVerticalAlignment(VerticalAlignment.BOTTOM));
table.addHeaderCell(new Cell().add(new Paragraph("Fourth Column Header"))
                              .setVerticalAlignment(VerticalAlignment.BOTTOM));

table.addCell("Row 1 Description");
table.addCell("12");
table.addCell("15");
table.addCell("27");

table.addCell("Row 2 Description");
table.addCell("25");
table.addCell("12");
table.addCell("37");

table.addCell("Sum");
table.addCell("37");
table.addCell("27");
table.addCell("64");

doc.add(table);

( CreateTableWithRotatedHeader test testCreateTableForUser648026)

Чтобы получить повернутый текст, мы применяем setRotationAngle(Math.PI / 2) к рассматриваемым абзацам.

Чтобы предотвратить разбиение повернутого текста на несколько строк, мы не рекомендуем применять разбиение.setSplitCharacters(noSplit).

Чтобы текст столбцов располагался внизу ячеек заголовка, а не вверху (по умолчанию), мы применяем setVerticalAlignment(VerticalAlignment.BOTTOM) к ячейкам.

Результат:

Screen shot

...