public void tableLayout(PdfPTable table, float[][] widths, float[] heights, int headerRows, int rowStart, PdfContentByte[] canvases) { int footer = widths.length - table.getFooterRows(); int header = table.getHeaderRows() - table.getFooterRows() + 1; for (int row = header; row < footer; row += 2) { int columns = widths[row].length - 1; Rectangle rect = new Rectangle(widths[row][0], heights[row], widths[row][columns], heights[row + 1]); rect.setBackgroundColor(styles.getColor(Styles.TABLE_ALTERNATE_BACKGROUND).or(Colors.VERY_LIGHT_GRAY)); rect.setBorder(Rectangle.NO_BORDER); canvases[PdfPTable.BASECANVAS].rectangle(rect); } } }
@SuppressWarnings("unchecked") @Override public void process(int level, Node node, InvocationContext context) { TreeNavigation nav = context.treeNavigation(); boolean isHeaderRow = nav.ancestorTreeMatches(TableRowNode.class, TableHeaderNode.class); List<Element> elements = context.collectChildren(level, node); TableInfos tableInfos = context.peekTable(); PdfPTable table = tableInfos.getTable(); int col = 0; for (Element element : elements) { PdfPCell cell = (PdfPCell) element; cell.setHorizontalAlignment(tableInfos.columnAlignment(col)); table.addCell(cell); col += cell.getColspan(); } table.completeRow(); if (isHeaderRow) { int headerRows = table.getHeaderRows(); table.setHeaderRows(headerRows + 1); } } }
if (table.size() <= table.getHeaderRows()) { compositeElements.removeFirst(); continue; int headerRows = table.getHeaderRows(); int footerRows = table.getFooterRows(); int realHeaderRows = headerRows - footerRows; (rowIdx < k || (splittedRow == -2 && (table.getHeaderRows() == 0 || table.isSkipFirstHeader())))) { splittedRow = -1;
if (table.size() <= table.getHeaderRows()) { compositeElements.removeFirst(); continue; int headerRows = table.getHeaderRows(); int footerRows = table.getFooterRows(); int realHeaderRows = headerRows - footerRows; (rowIdx < k || (splittedRow == -2 && (table.getHeaderRows() == 0 || table.isSkipFirstHeader())))) { splittedRow = -1;
if (ptable.size() <= ptable.getHeaderRows()) break; //nothing to do
if (ptable.size() <= ptable.getHeaderRows()) break; //nothing to do