我正在创建一个表,该表是具有页码引用的目录。.我在页面引用中添加注释以进行导航。
Boxable对呈现表很有帮助。我设法使注释链接呈现并正常工作。
我对页面顶部和表格标题行顶部之间的空白有疑问。我似乎无法找出如何使用任何api来获得该空间的高度。该空间比我的topMargin值的空间大很多。以下是我如何计算坐标的代码段。如果您注意到在计算lowerLeftY时,当tocPageNum> 0(pdfpages上的索引数为0)时,我再次添加了topMargin。这是我无法解释的空间,我似乎无法弄清楚从何处获得它。
//this is how the table is layed out.
float margin = 15;
float yStartNewPage = page.getMediaBox().getHeight() -(margin*2);
float tableWidth = page.getMediaBox().getWidth() - (margin*2);
boolean drawContent = true;
float topMargin = 15;
float bottomMargin = 25;
float yPosition = yStartNewPage;
BaseTable table = new BaseTable(yPosition, yStartNewPage, topMargin, bottomMargin, tableWidth, margin, document, page, true, drawContent);
//this is how to calculate the XY coordinates
float headerHeight = table.getHeader().getHeight();
float rowWidth = table.getRows().get(1).getWidth();
float rowHeight= table.getRows().get(1).getHeight();
float lastCellWidth table.getRows().get(1).getCells().get(3).getWidth();
pageUpperRightY = TOCPage.getMediaBox().getUpperRightY();
lowerLeftX= rowWidth+table.getMargin() -lastCellWidth;
upperRightX = lowerLeftX + lastCellWidth;
lowerLeftY = pageUpperRightY - ( (topMargin + table.getMargin()) +(currentRowNumber * rowHeight) + headerHeight);
if(tocPage >0)
lowerLeftY += topMargin;
upperRightY = lowerLeftY + (rowHeight);
是否可以使用api找到该空间?如果我明白了,那就完美了