table header 中的竖排文本?
Vertical text in table header?
如何使单个 header 文本(table 的 header)垂直排列而不是水平排列?
我试过添加
setVerticalAlignment(VerticalAlignment.TOP)
我认为这没有任何区别。
targetTable.addHeaderCell(new Paragraph("VerticalAlignment").setFont(myFont).setFontColor(ColorConstants.BLACK)).setVerticalAlignment(VerticalAlignment.TOP));
正如评论中已经提到的,这不是垂直对齐的问题(好吧,主要不是,我们将使用垂直对齐来垂直调整文本中的文本外部 header 个单元格)但不是 旋转文本 .
您可以像这样在图像中创建一个 table:
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 测试 testCreateTableForUser648026
)
为了获得旋转的文本,我们将 setRotationAngle(Math.PI / 2)
应用于相关段落。
为防止旋转的文本被拆分成多行,我们不鼓励拆分应用 setSplitCharacters(noSplit)
。
要使列文本位于 header 单元格的底部,而不是(默认)顶部,我们将 setVerticalAlignment(VerticalAlignment.BOTTOM)
应用于单元格。
结果:
如何使单个 header 文本(table 的 header)垂直排列而不是水平排列?
我试过添加
setVerticalAlignment(VerticalAlignment.TOP)
我认为这没有任何区别。
targetTable.addHeaderCell(new Paragraph("VerticalAlignment").setFont(myFont).setFontColor(ColorConstants.BLACK)).setVerticalAlignment(VerticalAlignment.TOP));
正如评论中已经提到的,这不是垂直对齐的问题(好吧,主要不是,我们将使用垂直对齐来垂直调整文本中的文本外部 header 个单元格)但不是 旋转文本 .
您可以像这样在图像中创建一个 table:
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 测试 testCreateTableForUser648026
)
为了获得旋转的文本,我们将 setRotationAngle(Math.PI / 2)
应用于相关段落。
为防止旋转的文本被拆分成多行,我们不鼓励拆分应用 setSplitCharacters(noSplit)
。
要使列文本位于 header 单元格的底部,而不是(默认)顶部,我们将 setVerticalAlignment(VerticalAlignment.BOTTOM)
应用于单元格。
结果: