如何使单个标题文本(表格标题)垂直流动而不是水平流动?
我尝试添加
setVerticalAlignment(VerticalAlignment.TOP)
我认为没有任何区别。
targetTable.addHeaderCell(new Paragraph("VerticalAlignment").setFont(myFont).setFontColor(ColorConstants.BLACK)).setVerticalAlignment(VerticalAlignment.TOP));
答案 0 :(得分:1)
正如评论中已经提到的,这不是垂直对齐的问题(好吧,主要不是,我们将使用垂直对齐来垂直调整外部标题单元格中的文本)但是而不是旋转文本。
您可以像这样在图像中创建一个表格:
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)
应用于单元格。
结果: