使用指定宽度和旋转文本呈现表格中的单元格似乎有bug。如果旋转角度为(Math. PI/2),则文本渗入相邻单元格,如果旋转角度为-(Math.PI/2),则单元格高度延伸到页面底部。
以下是单元测试:
@Test
public void tableRotationTest02() throws IOException,InterruptedException {
String outFileName = OUTPUT_FOLDER + "tableRotationTest02.pdf";
// String cmpFileName = sourceFolder + cmpPrefix + "tableRotationTest02.pdf";
// FileOutputStream file = new FileOutputStream(outFileName);
PdfWriter writer = new PdfWriter(outFileName);
PdfDocument pdfDoc = new PdfDocument(writer);
Document doc = new Document(pdfDoc);
Table table = new Table(new float[]{25, 50})
.addCell(new Cell().add(new Paragraph("cell 1, 1").setRotationAngle((Math.PI / 2))))
.addCell(new Cell().add(new Paragraph("cell 1, 2").setRotationAngle((Math.PI / 3))))
.addCell(new Cell().add(new Paragraph("cell 2, 1").setRotationAngle(-(Math.PI / 2))))
.addCell(new Cell().add(new Paragraph("cell 2, 2").setRotationAngle((Math.PI))));
doc.add(table);
doc.close();
// Assert.assertNull(new CompareTool().compareByContent(outFileName, cmpFileName, destinationFolder, "diff"));
}
这确实是一个bug,已经在iText中修复了。
https://github.com/itext/itext7/blob/develop/layout/src/test/java/com/itextpdf/layout/RotationTest.java
感谢您报告此事。